示例#1
0
        public async Task <IActionResult> EditSetting([FromBody] AddSettingRequest request)
        {
            string method = nameof(EditSetting);

            LogHandler.LogMethod(LogHandler.EventType.Call, Logger, method, request);
            SingleResponse <object> response = new SingleResponse <object>();

            try
            {
                if (!request.CheckValidation(response))
                {
                    return(response.ToHttpResponse(Logger, method));
                }

                var entity = request.ToEntity(true);

                var existingEntity = await DbContext.GetSetting(entity);

                if (existingEntity == null)
                {
                    response.ErrorCode = (int)ErrorHandler.ErrorCode.NoContent;
                    return(response.ToHttpResponse(Logger, method));
                }

                existingEntity.type   = entity.type;
                existingEntity.key    = entity.key;
                existingEntity.value  = entity.value;
                existingEntity.status = entity.status;

                int save = await DbContext.SaveChangesAsync();

                if (save == 0)
                {
                    response.ErrorCode = (int)ErrorHandler.ErrorCode.DbSaveNotDone;
                    return(response.ToHttpResponse(Logger, method));
                }
                var entity_list = new List <Setting> {
                    entity
                }
                .Select(x => new
                {
                    x.id,
                    x.create_date,
                    x.creator_id,
                    x.type,
                    x.key,
                    x.value,
                    x.status
                }).First();
                response.Model     = entity_list;
                response.ErrorCode = (int)ErrorHandler.ErrorCode.OK;
            }
            catch (Exception ex)
            {
                LogHandler.LogError(Logger, response, method, ex);
            }
            return(response.ToHttpResponse(Logger, method));
        }
示例#2
0
        public async Task <IActionResult> AddSetting([FromBody] AddSettingRequest request)
        {
            string method = nameof(AddSetting);

            LogHandler.LogMethod(LogHandler.EventType.Call, Logger, method, request);
            SingleResponse <object> response = new SingleResponse <object>();

            try
            {
                if (!request.CheckValidation(response))
                {
                    return(response.ToHttpResponse(Logger, method));
                }

                var user = request.ToEntity();

                if (user.type == SettingType.AnnualProfit)
                {
                    var existingEntity = DbContext.GetSettings(null, user.type);
                    if (existingEntity?.Count() > 0)
                    {
                        response.ErrorCode = (int)ErrorHandler.ErrorCode.AddRepeatedEntity;
                        return(response.ToHttpResponse(Logger, method));
                    }
                }

                DbContext.Add(user);
                int save = await DbContext.SaveChangesAsync();

                if (save == 0)
                {
                    response.ErrorCode = (int)ErrorHandler.ErrorCode.DbSaveNotDone;
                    return(response.ToHttpResponse(Logger, method));
                }
                var entity_list = new List <Setting> {
                    user
                }
                .Select(x => new
                {
                    x.id,
                    x.create_date,
                    x.creator_id,
                    x.type,
                    x.key,
                    x.value,
                    x.status
                }).First();
                response.Model     = entity_list;
                response.ErrorCode = (int)ErrorHandler.ErrorCode.OK;
            }
            catch (Exception ex)
            {
                LogHandler.LogError(Logger, response, method, ex);
            }
            return(response.ToHttpResponse(Logger, method));
        }