/// <summary>
        /// Update WorkHistory For Controller
        /// </summary>
        /// <param name="workHistoryObj"></param>
        /// <returns></returns>
        public async Task <WorkHistoryViewModel> UpdateInfomationWorkHistory(int id, UpdateWorkHistoryResource workHistoryObj)
        {
            model.AppResult.Result = false;
            //Validate Status
            var workHistoryById = await GetWorkHistoryById(id);

            if (workHistoryById == null)
            {
                model.AppResult.Message = Constant.WORKHISTORY_ERROR;
                return(model);
            }
            // Validate Start/End Date
            if (!Functions.ValidateInputTime(workHistoryObj.StartDate, workHistoryObj.EndDate))
            {
                model.AppResult.Message = Constant.DATETIME_ERROR;
                return(model);
            }
            //Validate CompanyName
            if (String.IsNullOrEmpty(workHistoryObj.CompanyName) || workHistoryObj.CompanyName.Length > 255)
            {
                model.AppResult.Message = Constant.COMPANY_ERROR;
                return(model);
            }
            //Validate Position
            if (String.IsNullOrEmpty(workHistoryObj.Position) || workHistoryObj.Position.Length > 255)
            {
                model.AppResult.Message = Constant.POSITION_ERROR;
                return(model);
            }
            // Validate Id of WorkHistoryInfo
            var tempWorkHistoryInfo = await _workHistoryRepository.FindAsync(id);

            if (tempWorkHistoryInfo is null)
            {
                model.AppResult.Message = Constant.WORKHISTORY_ERROR;
                return(model);
            }
            // Define DateTime.Year = "1111" is null
            var valueStartDate = Functions.ConvertDateTime(workHistoryObj.StartDate);
            var valueEndDate   = Functions.ConvertDateTime(workHistoryObj.EndDate);

            // Set value into WorkHistoryInfo
            tempWorkHistoryInfo.Id          = id;
            tempWorkHistoryInfo.Position    = workHistoryObj.Position;
            tempWorkHistoryInfo.CompanyName = workHistoryObj.CompanyName;
            tempWorkHistoryInfo.StartDate   = valueStartDate;
            tempWorkHistoryInfo.EndDate     = (valueEndDate.Year == 1111) ? (DateTime?)null : valueEndDate; // Define DateTime.Year = "1111" is null
            tempWorkHistoryInfo.UpdatedAt   = DateTime.Now;
            tempWorkHistoryInfo.UpdatedBy   = Helpers.HttpContext.CurrentUser;
            model.AppResult.Message         = Constant.UPDATE_SUCCESS;
            var result = await _workHistoryRepository.UpdateAsync(tempWorkHistoryInfo);

            model.AppResult.DataResult = result;
            model.AppResult.Result     = true;
            return(model);
        }
Example #2
0
        public async Task <IActionResult> UpdateWorkHistory(int id, [FromBody] UpdateWorkHistoryResource workHistory)
        {
            var app = await _workHistoryService.UpdateInfomationWorkHistory(id, workHistory);

            if (!app.AppResult.Result)
            {
                return(BadRequest(app.AppResult));
            }
            return(Ok(app.AppResult));
        }