root/branches/Prowizje/Wierszowki/Wierszowki.Services/MagazineItemService.cs @ 860

Wersja 823, 3.9 KB (wprowadzona przez alina, 17 years temu)

re #193,#207 dodano usuwanie wierszówek i dynamiczne listy DropDown?

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Wierszowki.Core.Interfaces;
6using Wierszowki.Core.Linq;
7using xVal.ServerSide;
8
9namespace Wierszowki.Services
10{
11    public class MagazineItemService
12    {
13        private readonly IRepository<MagazineItem> _repository;
14        private readonly IRepository<User> _userRepository;
15
16        public MagazineItemService()
17        {
18            _repository = new LinqRepository<MagazineItem>();
19            _userRepository = new LinqRepository<User>();
20        }
21
22        public MagazineItemService(IRepository<MagazineItem> repository, IRepository<User> userRepository)
23        {
24            _repository = repository;
25            _userRepository = userRepository;
26        }
27
28        public MagazineItem Find(int id)
29        {
30            return _repository.Find(id).SingleOrDefault();           
31        }
32
33        public void Create(MagazineItem magazineItem, string currentUser)
34        {
35            var errors = DataAnnotationsValidationRunner.GetErrors(magazineItem);
36            if (errors.Any())
37            {
38                throw new RulesException(errors);
39            }
40            var errors1 = new List<ErrorInfo>();
41            errors1 = ShowError(magazineItem);
42            if (errors1.Count() > 0) throw new RulesException(errors1.AsEnumerable());
43
44            var user = _userRepository.FindOne(u => u.Login == currentUser);
45            var now = DateTime.Now;
46            magazineItem.CreatedBy = user.Id;
47            magazineItem.CreatedOn = now;
48            magazineItem.UpdatedBy = user.Id;
49            magazineItem.UpdatedOn = now;
50           
51            _repository.Insert(magazineItem);
52           
53        }
54
55        private List<ErrorInfo> ShowError(MagazineItem magazineItem)
56        {
57            var errors1 = new List<ErrorInfo>();
58            if (magazineItem.IssueId <= 0)         
59            {
60                ErrorInfo e1 = new ErrorInfo("Magazine", "Proszę wybrać gazetę!");
61                errors1.Add(e1);
62                ErrorInfo e = new ErrorInfo("IssueId", "Proszę wybrać numer wydania!");
63                errors1.Add(e);           
64            }
65            return errors1;
66        }
67
68        public void Update(MagazineItem magazineItem, string currentUser)
69        {
70            var errors = DataAnnotationsValidationRunner.GetErrors(magazineItem);
71            if (errors.Any())
72                throw new RulesException(errors);
73
74            var errors1 = new List<ErrorInfo>();
75            errors1 = ShowError(magazineItem);
76            if (errors1.Count() > 0) throw new RulesException(errors1.AsEnumerable());
77                         
78
79            var user = _userRepository.FindOne(u => u.Login == currentUser);
80            var now = DateTime.Now;
81
82            var magazineItemToUpdate = _repository.FindOne(magazineItem.Id);           
83            magazineItemToUpdate.AuthorId = magazineItem.AuthorId;
84            magazineItemToUpdate.Bonus = magazineItem.Bonus;
85            magazineItemToUpdate.Caption = magazineItem.Caption;
86            magazineItemToUpdate.Date = magazineItem.Date;
87            magazineItemToUpdate.Description = magazineItem.Description;
88            magazineItemToUpdate.IssueId = magazineItem.IssueId;
89            magazineItemToUpdate.ItemTypeId = magazineItem.ItemTypeId;
90            magazineItemToUpdate.Price = magazineItem.Price;
91            magazineItemToUpdate.UpdatedBy = user.Id;
92            magazineItemToUpdate.UpdatedOn = now;
93
94            _repository.Update(magazineItemToUpdate);
95        }
96        public void Delete(MagazineItem magazineItem)
97        {
98            var magazineItemToDelete = _repository.FindOne(magazineItem.Id);
99            if (magazineItemToDelete != null)
100            {
101                _repository.Delete(magazineItemToDelete);
102            }
103        }
104    }
105}
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.