namespace LOC.Website.Common.Models { using System.Collections.Generic; using System.Data.Entity; using System.Linq; using Core.Model.PvpServer; using Core.Model.Server.PvpServer; using Data; public class PvpAdministrator : IPvpAdministrator { protected readonly INautilusRepositoryFactory RepositoryFactory; public PvpAdministrator(INautilusRepositoryFactory repositoryFactory) { RepositoryFactory = repositoryFactory; } public List GetItems(List items) { using (var repository = RepositoryFactory.CreateRepository()) { foreach (var item in items.Where(item => !repository.Any(x => x.Name == item.Name))) { repository.Add(item); } repository.CommitChanges(); return repository.GetAll().Include(x => x.SalesPackage).ToList(); } } public List GetSkills(List skills) { using (var repository = RepositoryFactory.CreateRepository()) { foreach (var skill in skills.Where(skill => !repository.Any(x => x.Name == skill.Name && x.Level == skill.Level))) { repository.Add(skill); } repository.CommitChanges(); return repository.GetAll().Include(x => x.SalesPackage).ToList(); } } public List GetWeapons(List weapons) { using (var repository = RepositoryFactory.CreateRepository()) { foreach (var weapon in weapons.Where(weapon => !repository.Any(x => x.Name == weapon.Name))) { repository.Add(weapon); } repository.CommitChanges(); return repository.GetAll().Include(x => x.SalesPackage).ToList(); } } public List GetPvpClasses(List pvpClasses) { using (var repository = RepositoryFactory.CreateRepository()) { foreach (var pvpClass in pvpClasses.Where(pvpClass => !repository.Any(x => x.Name == pvpClass.Name))) { repository.Add(pvpClass); } repository.CommitChanges(); return repository.GetAll().Include(x => x.SalesPackage).ToList(); } } public List GetBenefitItems(List benefitItems) { using (var repository = RepositoryFactory.CreateRepository()) { foreach (var benefitItem in benefitItems.Where(x => !repository.Any(y => y.Name == x.Name))) { repository.Add(benefitItem); } repository.CommitChanges(); return repository.GetAll().Include(x => x.SalesPackage).ToList(); } } } }