root/trunk/Wierszowki/Wierszowki.Services/MagazineItemService.cs @ 752

Wersja 752, 2.6 KB (wprowadzona przez marek, 17 years temu)

wiersz

RevLine 
[752]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).Single();
31        }
32
33        public void Create(MagazineItem magazineItem, string currentUser)
34        {
35            var errors = DataAnnotationsValidationRunner.GetErrors(magazineItem);
36            if (errors.Any())
37                throw new RulesException(errors);
38
39            var user = _userRepository.FindOne(u => u.Login == currentUser);
40            var now = DateTime.Now;
41            magazineItem.CreatedBy = user.Id;
42            magazineItem.CreatedOn = now;
43            magazineItem.UpdatedBy = user.Id;
44            magazineItem.UpdatedOn = now;
45
46            _repository.Insert(magazineItem);
47        }
48
49        public void Update(MagazineItem magazineItem, string currentUser)
50        {
51            var errors = DataAnnotationsValidationRunner.GetErrors(magazineItem);
52            if (errors.Any())
53                throw new RulesException(errors);
54
55            var user = _userRepository.FindOne(u => u.Login == currentUser);
56            var now = DateTime.Now;
57
58            var magazineItemToUpdate = _repository.FindOne(magazineItem.Id);
59            magazineItemToUpdate.AuthorId = magazineItem.AuthorId;
60            magazineItemToUpdate.Bonus = magazineItem.Bonus;
61            magazineItemToUpdate.Caption = magazineItem.Caption;
62            magazineItemToUpdate.Date = magazineItem.Date;
63            magazineItemToUpdate.Description = magazineItem.Description;
64            magazineItemToUpdate.IssueId = magazineItem.IssueId;
65            magazineItemToUpdate.ItemTypeId = magazineItem.ItemTypeId;
66            magazineItemToUpdate.Price = magazineItem.Price;
67            magazineItemToUpdate.UpdatedBy = user.Id;
68            magazineItemToUpdate.UpdatedOn = now;
69
70            _repository.Update(magazineItemToUpdate);
71        }
72    }
73}
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.