Exemplo n.º 1
0
        public async Task <IActionResult> InsertworkHistory([FromBody] CreateWorkHistoryResource workHistory)
        {
            var app = await _workHistoryService.CreateWorkHistory(workHistory);

            if (!app.AppResult.Result)
            {
                return(BadRequest(app.AppResult));
            }
            return(Ok(app.AppResult));
        }
        /// <summary>
        /// Create WorkHistory
        /// </summary>
        /// <param name="workHistoryObj"></param>
        /// <returns></returns>
        public async Task <WorkHistoryViewModel> CreateWorkHistory(CreateWorkHistoryResource workHistoryObj)
        {
            model.AppResult.Result = false;
            // 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 PersonId
            var taskValidPeronId = await _workHistoryRepository.ValidatePersonId(workHistoryObj.PersonId);

            if (taskValidPeronId < 1)
            {
                model.AppResult.Message = Constant.PERSONID_ERROR;
                return(model);
            }
            // Define DateTime.Year = "1111" is null
            var valueStartDate      = Functions.ConvertDateTime(workHistoryObj.StartDate);
            var valueEndDate        = Functions.ConvertDateTime(workHistoryObj.EndDate);
            var tempWorkHistoryInfo = new WorkHistoryInfo()
            {
                Position    = workHistoryObj.Position,
                CompanyName = workHistoryObj.CompanyName,
                StartDate   = valueStartDate,
                EndDate     = (valueEndDate.Year == 1111) ? (DateTime?)null : valueEndDate, // Define DateTime.Year = "1111" is null
                PersonId    = workHistoryObj.PersonId,
                UpdatedBy   = null,
                UpdatedAt   = null,
                CreatedBy   = Helpers.HttpContext.CurrentUser,
                CreatedAt   = DateTime.Now
            };
            var id = await _workHistoryRepository.InsertAsync(tempWorkHistoryInfo);

            var result = await GetWorkHistoryById(id);

            model.AppResult.DataResult = result;
            model.AppResult.Result     = true;
            model.AppResult.Message    = Constant.INSERT_SUCCESS;
            return(model);
        }
        /// <summary>
        /// Get List WorkHistory
        /// </summary>
        /// <param name="list"></param>
        /// <returns></returns>
        public static List <CreateWorkHistoryResource> GetListWorkHistory(List <string> list, int id)
        {
            List <CreateWorkHistoryResource> listWorkHistory = new List <CreateWorkHistoryResource>();
            int indexWorkHistory = list.IndexOf("WORKING HISTORY");
            int indexEducation   = list.IndexOf("EDUCATION");

            for (int i = indexWorkHistory + 4; i < indexEducation - 4; i = i + 4)
            {
                Hashtable hashtable = FormatYearAndMonth(list[i + 2]);
                CreateWorkHistoryResource workHistoryInfo = new CreateWorkHistoryResource
                {
                    StartDate   = hashtable["StartDate"],
                    EndDate     = hashtable["EndDate"],
                    CompanyName = list[i + 3],
                    Position    = list[i + 4],
                    PersonId    = id
                };
                listWorkHistory.Add(workHistoryInfo);
            }
            return(listWorkHistory);
        }