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)); } }
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)); } }