public IHttpActionResult PostUserGrow(GrowSettingDto userGrow)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
                Guid currentUserGuid = _userHelper.GetUserGuid();

                GrowSetting entity = _userGrowFactory.PostGrowSetting(userGrow, currentUserGuid);

                RepositoryActionResult <GrowSetting> result = _growSettingsRepository.PostGrowSetting(entity);

                if (result.Status == RepositoryActionStatus.Created)
                {
                    // map to dto
                    GrowSettingDto newUserGrow = _userGrowFactory.GetGrowSetting(result.Entity);
                    userGrow.GrowSettingId = entity.GrowSettingId;
                    return(Created(Request.RequestUri
                                   + "/" + result.Entity.GrowSettingId, newUserGrow));
                }

                throw new Exception();
            }
            catch (Exception)
            {
                return(InternalServerError());
            }
        }
 public GrowSetting PostGrowSetting(GrowSettingDto userGrow, Guid userGuid)
 {
     return(new GrowSetting
     {
         GrowSettingName = userGrow.GrowSettingName,
         GrowSettingNotes = userGrow.GrowSettingNotes,
         CreateDateTime = DateTime.UtcNow,
         SystemDefaultGrowSetting = false,
         UserGuid = userGuid
     });
 }
        public IHttpActionResult PutUserGrow(int growSettingId, GrowSettingDto userGrow)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                Guid currentUserGuid = _userHelper.GetUserGuid();

                GrowSetting originalEntity = _growSettingsRepository.GetGrowSetting(growSettingId, currentUserGuid);

                if (originalEntity == null)
                {
                    return(NotFound());
                }

                GrowSetting modifiedGrowSetting = _userGrowFactory.PutGrowSetting(originalEntity, userGrow);

                RepositoryActionResult <GrowSetting> result = _growSettingsRepository.PutGrowSetting(growSettingId,
                                                                                                     modifiedGrowSetting, currentUserGuid);

                switch (result.Status)
                {
                case RepositoryActionStatus.Updated:
                    return(Ok(_userGrowFactory.GetGrowSetting(modifiedGrowSetting)));

                case RepositoryActionStatus.Error:
                    return(InternalServerError());

                case RepositoryActionStatus.NotFound:
                    return(NotFound());

                case RepositoryActionStatus.NothingModified:
                    return(Ok(_userGrowFactory.GetGrowSetting(modifiedGrowSetting)));

                default:
                    return(BadRequest());
                }
            }
            catch (Exception)
            {
                return(InternalServerError());
            }
        }
 public GrowSetting PutGrowSetting(GrowSetting originalEntity, GrowSettingDto userGrow)
 {
     originalEntity.GrowSettingName  = userGrow.GrowSettingName;
     originalEntity.GrowSettingNotes = userGrow.GrowSettingNotes;
     return(originalEntity);
 }