Esempio n. 1
0
        public async Task <List <Result> > CreateChronicleAsync(Models.Other.CRUD.Chronicle chronicle)
        {
            var newChronicle = _mapper.Map <Database.Entities.Other.Chronicle>(chronicle);
            var results      = new List <Result>();

            results.Update(await _dbClient.CreateChronicleAsync(newChronicle), ResultMessages.CreateChronicle);
            if (results.Any(r => r.Type == ResultType.Failure))
            {
                return(results);
            }

            var nullableNewChronicleId = (await _dbClient.GetChronicleOnSlugAsync(newChronicle.Slug))?.Id;

            if (nullableNewChronicleId == null)
            {
                return(results);
            }

            var newChronicleId = (int)nullableNewChronicleId;

            if (chronicle.CategoryIds.Any())
            {
                await _dbClient.AddCategoriesToChronicleAsync(newChronicleId, chronicle.CategoryIds);
            }

            if (chronicle.NewCategoryNames != null && chronicle.NewCategoryNames.Any())
            {
                await _dbClient.CreateNewChronicleCategoriesAndConnectToNewChronicleWithIdAsync(newChronicleId, chronicle.NewCategoryNames.ToList());
            }

            return(results);
        }
Esempio n. 2
0
 public Database.Entities.Other.Chronicle Convert(Models.Other.CRUD.Chronicle source, Database.Entities.Other.Chronicle destination, ResolutionContext context)
 {
     return(new Database.Entities.Other.Chronicle
     {
         Id = source.Id,
         Title = source.Title,
         Text = source.Text,
         Slug = new SlugHelper().GenerateSlug(source.Title),
         WrittenByUserId = source.WrittenByUserId,
         Published = !string.IsNullOrEmpty(source.Published) ? System.Convert.ToDateTime(source.Published) : DateTime.Now
     });
 }
Esempio n. 3
0
        public async Task <List <Result> > UpdateChronicleAsync(Models.Other.CRUD.Chronicle chronicle)
        {
            var existingChronicle = _mapper.Map <Database.Entities.Other.Chronicle>(chronicle);
            var results           = new List <Result>();

            results.Update(await _dbClient.UpdateChronicleAsync(existingChronicle), ResultMessages.UpdateChronicle);
            if (results.Any(r => r.Type == ResultType.Failure))
            {
                return(results);
            }

            await _dbClient.AddOrRemoveCategoriesToExistingChronicleAsync(existingChronicle.Id, chronicle.CategoryIds);

            if (chronicle.NewCategoryNames != null && chronicle.NewCategoryNames.Any())
            {
                await _dbClient.CreateNewChronicleCategoriesAndConnectToNewChronicleWithIdAsync(existingChronicle.Id, chronicle.NewCategoryNames.ToList());
            }

            return(results);
        }
Esempio n. 4
0
 public Task <List <Result> > Update([FromBody] Models.Other.CRUD.Chronicle chronicle)
 {
     _logger.Debug("Requesting to update an existing chronicle");
     return(_chronicleRepository.UpdateChronicleAsync(chronicle));
 }