public Website Create(WebsiteInputData viewData) { return(new Website { Name = viewData.Name, URL = viewData.URL, Category = viewData.Category, HomepageSnapshot = viewData.HomepageSnapshot, Email = viewData.LoginDetails.Email, Password = _stringHash.ComputeSha256Hash(viewData.LoginDetails.Password), IsDeleted = false, CreatedAt = DateTime.Now.ToString() }); }
private async Task <Website> PopulateEntityDataWithViewData(WebsiteInputData viewData, Guid entityId) { var getCurrent = await _repository.GetByIdAsync <Website>(entityId); getCurrent.Name = viewData.Name ?? getCurrent.Name; getCurrent.URL = viewData.URL ?? getCurrent.URL; getCurrent.Category = viewData.Category != getCurrent.Category ? viewData.Category : getCurrent.Category; getCurrent.HomepageSnapshot = viewData.HomepageSnapshot ?? getCurrent.HomepageSnapshot; getCurrent.Email = viewData.LoginDetails.Email ?? getCurrent.Email; getCurrent.Password = viewData.LoginDetails.Password ?? getCurrent.Password; getCurrent.EditedAt = DateTime.Now.ToString(); return(getCurrent); }
public async Task <EntityActionOutcome> CreateEntityAsync(WebsiteInputData viewData) { var newEntity = _factory.Create(viewData); var validator = new WebsiteInputDataValidator(); var result = validator.Validate(viewData); if (result.IsValid == false) { return(EntityActionOutcome.MissingFullEntityData); } var upsertSuccessful = await _repository.AddAsync(newEntity); if (upsertSuccessful == null) { return(EntityActionOutcome.CreateFailed); } return(EntityActionOutcome.Success); }
public async Task <EntityActionOutcome> UpdateEntityAsync(WebsiteInputData viewData, Guid id) { var getCurrent = await _repository.GetByIdAsync <Website>(id); var validator = new WebsiteInputDataValidator(); var result = validator.Validate(viewData); if (result.IsValid == false) { return(EntityActionOutcome.UpdateFailed); } var updateSuccessful = _repository.Update(await PopulateEntityDataWithViewData(viewData, id)); if (updateSuccessful == null) { return(EntityActionOutcome.EntityNotFound); } return(EntityActionOutcome.Success); }
public async Task <HttpStatusCode> Update(WebsiteInputData inputData, Guid id) { var updateEntityOutcome = await _service.UpdateEntityAsync(inputData, id); return(_resultFactory.Create(updateEntityOutcome)); }
public async Task <HttpStatusCode> Create(WebsiteInputData inputData) { var createEntityOutcome = await _service.CreateEntityAsync(inputData); return(_resultFactory.Create(createEntityOutcome)); }