Example #1
0
        public async Task <TypedResult <TemplateEntity> > NewTemplate(TemplateInDto templateIn)
        {
            try
            {
                var newTemplate = Mapper.Map <TemplateInDto, TemplateEntity>(templateIn);
                await _templateCollection.InsertOneAsync(newTemplate);

                return(new SuccessfulTypedResult <TemplateEntity>(newTemplate));
            }
            catch (Exception e)
            {
                return(new FailedTypedResult <TemplateEntity>(e));
            }
        }
Example #2
0
        public async Task <TypedResult <TemplateEntity> > UpdateTemplate(ObjectId templateId, TemplateInDto templateIn)
        {
            try
            {
                var updates = new List <UpdateDefinition <TemplateEntity> >();
                if (!string.IsNullOrWhiteSpace(templateIn?.Name))
                {
                    updates.Add(Builders <TemplateEntity> .Update.Set(te => te.Name, templateIn.Name));
                }

                if (!string.IsNullOrWhiteSpace(templateIn?.Description))
                {
                    updates.Add(Builders <TemplateEntity> .Update.Set(te => te.Description, templateIn.Description));
                }

                if (!updates.Any())
                {
                    return(new BadRequestTypedResult <TemplateEntity>("templateIn", "No updates to apply."));
                }

                var foundTemplate = await _templateCollection.FindOneAndUpdateAsync <TemplateEntity>(t => t.Id == templateId,
                                                                                                     Builders <TemplateEntity> .Update.Combine(updates),
                                                                                                     GetEntityAfterUpdateOption <TemplateEntity>());

                if (foundTemplate == null)
                {
                    return(new NotFoundTypedResult <TemplateEntity>());
                }

                return(new SuccessfulTypedResult <TemplateEntity>(foundTemplate));
            }
            catch (Exception e)
            {
                return(new FailedTypedResult <TemplateEntity>(e));
            }
        }