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()
     });
 }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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));
        }