public async Task <SiteListEntry> UpdateListEntry(SiteListEntry listEntry) { if (string.IsNullOrEmpty(listEntry.Value)) { throw new CallerException("Value field can't be empty"); } var existingListEntry = await GetListEntryById(listEntry.SiteListEntryId, true); if (existingListEntry == null) { throw new CallerException("SiteListEntry not found"); } existingListEntry.UpdatedBy = listEntry.UpdatedBy; existingListEntry.Value = listEntry.Value; using (var uow = new UnitOfWork(Context)) { var repo = new SiteListEntryRepository(uow); existingListEntry = await repo.Update(existingListEntry); } var siteListCache = new SiteListEntryCache(Cache); await siteListCache.InvalidateListEntryCache(listEntry.SiteListId); return(existingListEntry); }
private async Task <SiteListEntry> CreateListEntry(SiteListEntry listEntry) { using (var uow = new UnitOfWork(Context)) { var repo = new SiteListEntryRepository(uow); return(await repo.Create(listEntry)); } }
public async Task <SiteListEntry> Create(SiteListEntry listEntry, bool isAdmin) { if (string.IsNullOrEmpty(listEntry.Value)) { throw new CallerException("Value can't be empty"); } if (listEntry.SiteListId < 1) { throw new CallerException("SiteListEntry must belong to a SiteList"); } SiteListLogic siteListLogic = new SiteListLogic(Cache, Context); var list = siteListLogic.GetListById(listEntry.SiteListId, isAdmin); if (list == null) { throw new CallerException("List not found to add entry to"); } var existingListEntries = await GetListEntries(listEntry.SiteListId, isAdmin); if (existingListEntries != null && existingListEntries.Select(c => c.Value.ToUpper()).Contains(listEntry.Value.ToUpper())) { throw new FriendlyException("CreateListEntry.ValueAlreadyExists", "ListEntry already exists"); } var createdListEntry = await CreateListEntry(listEntry); SiteListEntryCache siteListCache = new SiteListEntryCache(Cache); await siteListCache.InvalidateListEntryCache(createdListEntry.SiteListId); return(createdListEntry); }