Pokaż
Ignoruj:
Data:
2009-10-02 13:15:40 (17 years ago)
Autor:
alina
Opis:

fix #207, #193, #205

Pliki:
1 zmodyfikowane

Legenda:

Bez zmian
Dodane
Usunięte
  • trunk/Wierszowki/Wierszowki.Web/Controllers/MagazineItemController.cs

    r823 r842  
    66using Wierszowki.Services; 
    77using xVal.ServerSide; 
     8using System.Collections.Generic; 
     9using Wierszowki.Core.Interfaces; 
    810 
    911namespace Wierszowki.Controllers 
     
    4042            try 
    4143            { 
    42                 _service.Create(magazineItem, ControllerContext.HttpContext.User.Identity.Name);                             
     44                _service.Create(magazineItem, ControllerContext.HttpContext.User.Identity.Name); 
    4345                ModelState.Clear(); 
    4446            } 
     
    4749                ex.AddModelStateErrors(ModelState, "magazineItem"); 
    4850            } 
    49             
     51 
    5052            if (ModelState.IsValid) 
    5153            { 
    52                 return RedirectToAction("Confirm", _context.Authors.Single(a => a.Id == magazineItem.AuthorId)); 
     54                Info inf = InitInfo("1", 0, 0, 0); 
     55                var confirmViewData = new ConfirmViewData(); 
     56                confirmViewData = InitConfirmViewData(_context.Authors.Single(a => a.Id == magazineItem.AuthorId), OperationType.Create, inf); 
     57                return View("Confirm", confirmViewData); 
    5358            } 
    5459            var viewData = InitMagazineItemViewData(); 
    5560            viewData.MagazineItem = magazineItem; 
    56              
    57             return View(viewData);  
     61 
     62            return View(viewData); 
    5863        } 
    5964 
     
    6570 
    6671        [Authorize] 
    67         public ActionResult Edit(int id) 
    68         { 
    69             var viewData = InitMagazineItemViewData(); 
    70             var magazineItem = _service.Find(id); 
     72        public ActionResult Edit(string id, string powrot, string month, string year, string user_id) 
     73        { 
     74            int id1 = 0; 
     75            int month1 = (month != null) ? Convert.ToInt32(month) : 0; 
     76            int year1 = (year != null) ? Convert.ToInt32(year) : 0; 
     77            int user1 = (user_id != null) ? Convert.ToInt32(user_id) : 0; 
     78            try 
     79            { 
     80                id1 = (id != null) ? Convert.ToInt32(id) : 0; 
     81            } 
     82            catch 
     83            { 
     84            } 
     85            var viewData = InitMagazineItemViewData(); 
     86            var magazineItem = _service.Find(id1); 
    7187 
    7288            if (magazineItem == null) 
    7389            { 
    74                 ViewData["message"] = "null"; 
    75                 return View("Confirm"); 
    76             } 
    77  
     90                Info inf = InitInfo(powrot, month1, year1, user1); 
     91                var confirmViewData = new ConfirmViewData(); 
     92 
     93                if (id != "")     //nie znaleziono w bazie wierszowki o zadanym id 
     94                { 
     95                    confirmViewData = InitConfirmViewData(null, OperationType.WrongId, inf); 
     96                } 
     97                else              //nie podano numeru id 
     98                { 
     99                    confirmViewData = InitConfirmViewData(null, OperationType.NullId, null); 
     100                } 
     101                return View("Confirm", confirmViewData); 
     102            } 
    78103            viewData.MagazineItem = magazineItem; 
    79104            viewData.Magazine = magazineItem.Issue.Magazine; 
    80105            viewData.Issue = magazineItem.Issue; 
    81             viewData.IssueList = new SelectList(_context.FindIssuesByMagazineItemId(magazineItem.Issue.Id), "Id", "Number"); 
     106            viewData.Info = InitInfo(powrot, month1, year1, user1); 
     107 
     108            var startDate = DateTime.Now.AddMonths(-3); 
     109            var endDate = DateTime.Now.AddMonths(1); 
     110            var issueList = _context.GetIssue().Where(i => i.Date >= startDate && i.Date <= endDate && i.MagazineId == magazineItem.Issue.MagazineId).OrderBy(i => i.Date).ToList(); 
     111 
     112            int start_number = issueList[0].Number; 
     113            int AddId = 0; 
     114            if (magazineItem.Issue.Number < start_number) 
     115            { 
     116                viewData.SmallerMagazineNumber = 1; 
     117                AddId = magazineItem.Issue.Id; 
     118            } 
     119            viewData.IssueList = new SelectList(_context.FindIssuesByMagazineItemId(magazineItem.Issue.Id, AddId), "Id", "Number"); 
    82120            return View(viewData); 
    83121        } 
    84122        [Authorize] 
    85123        [AcceptVerbs(HttpVerbs.Post)] 
    86         public ActionResult Update(MagazineItem magazineItem) 
    87         { 
    88             try 
    89             { 
    90                 //var service = new MagazineItemService(); 
     124        public ActionResult Update(MagazineItem magazineItem, Info info) 
     125        { 
     126            try 
     127            { 
    91128                _service.Update(magazineItem, ControllerContext.HttpContext.User.Identity.Name); 
    92129                ModelState.Clear(); 
     
    99136            if (ModelState.IsValid) 
    100137            { 
    101                 var author = _context.Authors.Single(a => a.Id == magazineItem.AuthorId); 
    102                 return RedirectToAction("Confirm", author);                
    103             } 
    104             var viewData = InitMagazineItemViewData(); 
    105             viewData.MagazineItem = magazineItem; 
    106             return View(viewData);             
    107         } 
    108  
     138                var confirmViewData = new ConfirmViewData(); 
     139                confirmViewData = InitConfirmViewData(_context.Authors.Single(a => a.Id == magazineItem.AuthorId), OperationType.Update, info); 
     140                return View("Confirm", confirmViewData); 
     141            } 
     142            var magazine = _service.Find(magazineItem.Id); 
     143            var viewData = InitMagazineItemViewData(); 
     144            viewData.Info = info;//InitInfo(info.powrot, info.month, info.year, info.user_id); 
     145            viewData.MagazineItem = magazine; 
     146            return View("Edit", viewData); 
     147        } 
     148        private Info InitInfo(string p, int m, int y, int u) 
     149        { 
     150            Info inf = new Info(); 
     151            inf.powrot = p; 
     152            inf.month = m; 
     153            inf.year = y; 
     154            inf.user_id = u; 
     155            return inf; 
     156        } 
    109157        private MagazineItemViewData InitMagazineItemViewData() 
    110158        { 
    111159            var viewData = new MagazineItemViewData 
    112                                { 
    113                                    MagazineItem = new MagazineItem(), 
    114                                    AuthorList = new SelectList(_context.Authors.ToList(), "Id", "FullName"), 
    115                                    MagazineList = new SelectList(_context.Magazines.ToList(), "Id", "NickName"), 
    116                                    IssueList = new SelectList(_context.FindIssuesByMagazineId(0), "Id", "Name"), 
    117                                    ItemTypeList = new SelectList(_context.ItemTypes.ToList(), "Id", "Name") 
    118                                }; 
     160            { 
     161                MagazineItem = new MagazineItem(), 
     162                AuthorList = new SelectList(_context.Authors.OrderBy(a => a.LastName).ToList(), "Id", "FullName"), 
     163                MagazineList = new SelectList(_context.Magazines.ToList(), "Id", "NickName"), 
     164                IssueList = new SelectList(_context.FindIssuesByMagazineId(0, 0), "Id", "Name"), 
     165                ItemTypeList = new SelectList(_context.ItemTypes.ToList(), "Id", "Name"), 
     166                SmallerMagazineNumber = 0, 
     167                Info = new Info() 
     168            }; 
    119169            return viewData; 
    120170        } 
    121171        [Authorize] 
    122         public ActionResult Delete(int id) 
    123         { 
    124             return View("Delete"); 
     172        public ActionResult Delete(string id, string powrot, string month, string year, string user_id) 
     173        { 
     174            int id1 = 0; 
     175            try 
     176            { 
     177                id1 = (id != null) ? Convert.ToInt32(id) : 0; 
     178            } 
     179            catch 
     180            { 
     181            } 
     182            var deleteViewData = new DeleteViewData();             
     183            int month1 = (month != null) ? Convert.ToInt32(month) : 0; 
     184            int year1 = (year != null) ? Convert.ToInt32(year) : 0; 
     185            int user1 = (user_id != null) ? Convert.ToInt32(user_id) : 0; 
     186            deleteViewData.Info = InitInfo(powrot, month1, year1, user1); 
     187            return View("Delete", deleteViewData); 
    125188        } 
    126189        [Authorize] 
    127190        [AcceptVerbs(HttpVerbs.Post)] 
    128         public ActionResult Delete(MagazineItem magazineItem) 
    129         { 
    130             _service.Delete(magazineItem);    
    131             if (magazineItem.AuthorId == 0){ 
    132                 ViewData["message"] = "null"; 
    133                 return View("Confirm"); 
    134             }                                         
    135             ViewData["message"] = "delete"; 
    136             return View("Confirm"); 
    137             
     191        public ActionResult Delete(MagazineItem magazineItem, Info info) 
     192        { 
     193            var magazineItemToDelete = _service.Delete(magazineItem); 
     194            var confirmViewData = new ConfirmViewData(); 
     195            if (magazineItemToDelete == null) 
     196            { 
     197                confirmViewData = InitConfirmViewData(null, OperationType.WrongId, info); 
     198            } 
     199            else 
     200            { 
     201                confirmViewData = InitConfirmViewData(magazineItemToDelete.Author, OperationType.Delete, info); 
     202            } 
     203            return View("Confirm", confirmViewData); 
     204        } 
     205        private ConfirmViewData InitConfirmViewData(Author author, OperationType c_type, Info inf) 
     206        { 
     207            var viewData = new ConfirmViewData 
     208            { 
     209                Author = author, 
     210                akcja = c_type, 
     211                info = inf 
     212            }; 
     213            return viewData; 
    138214        } 
    139215    }