Index: branches/Abonament/Wierszowki/Wierszowki.Web/Controllers/MagazineItemController.cs
===================================================================
--- branches/Abonament/Wierszowki/Wierszowki.Web/Controllers/MagazineItemController.cs (revision 839)
+++ branches/Abonament/Wierszowki/Wierszowki.Web/Controllers/MagazineItemController.cs (revision 854)
@@ -6,4 +6,6 @@
 using Wierszowki.Services;
 using xVal.ServerSide;
+using System.Collections.Generic;
+using Wierszowki.Core.Interfaces;
 
 namespace Wierszowki.Controllers
@@ -40,5 +42,5 @@
             try
             {
-                _service.Create(magazineItem, ControllerContext.HttpContext.User.Identity.Name);                            
+                _service.Create(magazineItem, ControllerContext.HttpContext.User.Identity.Name);
                 ModelState.Clear();
             }
@@ -47,13 +49,22 @@
                 ex.AddModelStateErrors(ModelState, "magazineItem");
             }
-           
+
             if (ModelState.IsValid)
             {
-                return RedirectToAction("Confirm", _context.Authors.Single(a => a.Id == magazineItem.AuthorId));
-            }
+                Info inf = InitInfo("1", 0, 0, 0);
+                var confirmViewData = new ConfirmViewData();
+                confirmViewData = InitConfirmViewData(_context.Authors.Single(a => a.Id == magazineItem.AuthorId), OperationType.Create, inf);
+                return View("Confirm", confirmViewData);
+            }
+            var magazine = _service.Find(magazineItem.Id);
             var viewData = InitMagazineItemViewData();
             viewData.MagazineItem = magazineItem;
-            
-            return View(viewData); 
+            if (magazineItem.IssueId != 0)
+            {
+                viewData.Issue = _context.Issues.Single(i => i.Id == magazineItem.IssueId);
+                viewData.Magazine = viewData.Issue.Magazine;
+                viewData.IssueList = new SelectList(_context.FindIssuesByMagazineItemId(magazineItem.IssueId, 0), "Id", "Number");
+            }
+            return View(viewData);
         }
 
@@ -65,28 +76,60 @@
 
         [Authorize]
-        public ActionResult Edit(int id)
-        {
-            var viewData = InitMagazineItemViewData();
-            var magazineItem = _service.Find(id);
+        public ActionResult Edit(string id, string powrot, string month, string year, string user_id)
+        {
+            int id1 = 0;
+            int month1 = (month != null) ? Convert.ToInt32(month) : 0;
+            int year1 = (year != null) ? Convert.ToInt32(year) : 0;
+            int user1 = (user_id != null) ? Convert.ToInt32(user_id) : 0;
+            try
+            {
+                id1 = (id != null) ? Convert.ToInt32(id) : 0;
+            }
+            catch
+            {
+            }
+            var viewData = InitMagazineItemViewData();
+            var magazineItem = _service.Find(id1);
 
             if (magazineItem == null)
             {
-                ViewData["message"] = "null";
-                return View("Confirm");
-            }
-
+                Info inf = InitInfo(powrot, month1, year1, user1);
+                var confirmViewData = new ConfirmViewData();
+
+                if (id != "")     //nie znaleziono w bazie wierszowki o zadanym id
+                {
+                    confirmViewData = InitConfirmViewData(null, OperationType.WrongId, inf);
+                }
+                else              //nie podano numeru id
+                {
+                    confirmViewData = InitConfirmViewData(null, OperationType.NullId, null);
+                }
+                return View("Confirm", confirmViewData);
+            }
             viewData.MagazineItem = magazineItem;
             viewData.Magazine = magazineItem.Issue.Magazine;
             viewData.Issue = magazineItem.Issue;
-            viewData.IssueList = new SelectList(_context.FindIssuesByMagazineItemId(magazineItem.Issue.Id), "Id", "Number");
+            viewData.Info = InitInfo(powrot, month1, year1, user1);
+
+            var startDate = DateTime.Now.AddMonths(-3);
+            var endDate = DateTime.Now.AddMonths(1);
+            var issueList = _context.GetIssue().Where(i => i.Date >= startDate && i.Date <= endDate && i.MagazineId == magazineItem.Issue.MagazineId).OrderBy(i => i.Date).ToList();
+
+            int start_number = issueList[0].Number;
+            int AddId = 0;
+            if (magazineItem.Issue.Number < start_number)
+            {
+                viewData.SmallerMagazineNumber = 1;
+                AddId = magazineItem.Issue.Id;
+            }
+            viewData.IssueList = new SelectList(_context.FindIssuesByMagazineItemId(magazineItem.Issue.Id, AddId), "Id", "Number");
             return View(viewData);
         }
         [Authorize]
         [AcceptVerbs(HttpVerbs.Post)]
-        public ActionResult Update(MagazineItem magazineItem)
-        {
-            try
-            {
-                //var service = new MagazineItemService();
+        public ActionResult Update(MagazineItem magazineItem, Info info)
+        {
+            try
+            {
                 _service.Update(magazineItem, ControllerContext.HttpContext.User.Identity.Name);
                 ModelState.Clear();
@@ -99,41 +142,86 @@
             if (ModelState.IsValid)
             {
-                var author = _context.Authors.Single(a => a.Id == magazineItem.AuthorId);
-                return RedirectToAction("Confirm", author);               
-            }
-            var viewData = InitMagazineItemViewData();
-            viewData.MagazineItem = magazineItem;
-            return View(viewData);            
-        }
-
+                var confirmViewData = new ConfirmViewData();
+                confirmViewData = InitConfirmViewData(_context.Authors.Single(a => a.Id == magazineItem.AuthorId), OperationType.Update, info);
+                return View("Confirm", confirmViewData);
+            }
+            var magazine = _service.Find(magazineItem.Id);
+            var viewData = InitMagazineItemViewData();
+            viewData.Info = info;
+            viewData.MagazineItem = magazine;
+            if (magazineItem.IssueId != 0)
+            {
+                viewData.Issue = _context.Issues.Single(i => i.Id == magazine.IssueId);
+                viewData.Magazine = magazine.Issue.Magazine;
+                viewData.IssueList = new SelectList(_context.FindIssuesByMagazineItemId(magazine.Issue.Id, 0), "Id", "Number");
+            }
+            return View("Edit", viewData);
+        }
+        private Info InitInfo(string p, int m, int y, int u)
+        {
+            Info inf = new Info();
+            inf.powrot = p;
+            inf.month = m;
+            inf.year = y;
+            inf.user_id = u;
+            return inf;
+        }
         private MagazineItemViewData InitMagazineItemViewData()
         {
             var viewData = new MagazineItemViewData
-                               {
-                                   MagazineItem = new MagazineItem(),
-                                   AuthorList = new SelectList(_context.Authors.ToList(), "Id", "FullName"),
-                                   MagazineList = new SelectList(_context.Magazines.ToList(), "Id", "NickName"),
-                                   IssueList = new SelectList(_context.FindIssuesByMagazineId(0), "Id", "Name"),
-                                   ItemTypeList = new SelectList(_context.ItemTypes.ToList(), "Id", "Name")
-                               };
+            {
+                MagazineItem = new MagazineItem(),
+                AuthorList = new SelectList(_context.Authors.OrderBy(a => a.LastName).ToList(), "Id", "FullName"),
+                MagazineList = new SelectList(_context.Magazines.ToList(), "Id", "NickName"),
+                IssueList = new SelectList(_context.FindIssuesByMagazineId(0, 0), "Id", "Name"),
+                ItemTypeList = new SelectList(_context.ItemTypes.ToList(), "Id", "Name"),
+                SmallerMagazineNumber = 0,
+                Info = new Info()
+            };
             return viewData;
         }
         [Authorize]
-        public ActionResult Delete(int id)
-        {
-            return View("Delete");
+        public ActionResult Delete(string id, string powrot, string month, string year, string user_id)
+        {
+            int id1 = 0;
+            try
+            {
+                id1 = (id != null) ? Convert.ToInt32(id) : 0;
+            }
+            catch
+            {
+            }
+            var deleteViewData = new DeleteViewData();            
+            int month1 = (month != null) ? Convert.ToInt32(month) : 0;
+            int year1 = (year != null) ? Convert.ToInt32(year) : 0;
+            int user1 = (user_id != null) ? Convert.ToInt32(user_id) : 0;
+            deleteViewData.Info = InitInfo(powrot, month1, year1, user1);
+            return View("Delete", deleteViewData);
     }
         [Authorize]
         [AcceptVerbs(HttpVerbs.Post)]
-        public ActionResult Delete(MagazineItem magazineItem)
-        {
-            _service.Delete(magazineItem);   
-            if (magazineItem.AuthorId == 0){
-                ViewData["message"] = "null";
-                return View("Confirm");
-            }                                        
-            ViewData["message"] = "delete";
-            return View("Confirm");
-           
+        public ActionResult Delete(MagazineItem magazineItem, Info info)
+        {
+            var magazineItemToDelete = _service.Delete(magazineItem);
+            var confirmViewData = new ConfirmViewData();
+            if (magazineItemToDelete == null)
+            {
+                confirmViewData = InitConfirmViewData(null, OperationType.WrongId, info);
+            }
+            else
+            {
+                confirmViewData = InitConfirmViewData(magazineItemToDelete.Author, OperationType.Delete, info);
+            }
+            return View("Confirm", confirmViewData);
+        }
+        private ConfirmViewData InitConfirmViewData(Author author, OperationType c_type, Info inf)
+        {
+            var viewData = new ConfirmViewData
+            {
+                Author = author,
+                akcja = c_type,
+                info = inf
+            };
+            return viewData;
         }
     }
