public IActionResult PutTblTransportDataToDataBase(int key, [FromBody] TransportData2ViewModel uTransport)
        {
            if (uTransport != null)
            {
                //if (!string.IsNullOrEmpty(uTransport.StringTransDate))
                //{
                //    DateTime dt = new DateTime();
                //    DateTime.TryParseExact(uTransport.StringTransDate,
                //                           "dd/MM/yyyy",
                //                           System.Globalization.CultureInfo.InvariantCulture,
                //                           System.Globalization.DateTimeStyles.None,
                //                           out dt);
                //    uTransport.TransDate = dt;
                //}

                if (uTransport.TransDate != null)
                {
                    var             tempDate = uTransport.TransDate.Value;
                    System.TimeSpan time     = System.TimeSpan.Parse(uTransport.TransTime);

                    uTransport.TransDate = new System.DateTime(tempDate.Year, tempDate.Month, tempDate.Day, time.Hours, time.Minutes, 0);
                }

                if (uTransport.FinalDate != null)
                {
                    var tempDate2 = uTransport.FinalDate.Value;
                    var time2     = System.TimeSpan.Parse(uTransport.FinalTime);

                    uTransport.FinalDate = new System.DateTime(tempDate2.Year, tempDate2.Month, tempDate2.Day, time2.Hours, time2.Minutes, 0);
                }

                // Update to company
                int?CompanyId = null;
                if (uTransport.CompanyID.HasValue)
                {
                    CompanyId = uTransport.CompanyID.Value;
                }

                var hasData = this.repository.UpdateTblTransportDataToDataBase(key, uTransport);
                if (hasData != null)
                {
                    if (CompanyId.HasValue)
                    {
                        Expression <Func <TblTranHasCompany, bool> > condition = c => c.TransportId == hasData.TransportId;
                        var hasTranHasCompany = this.repositoryTranCompany.Find(condition);
                        if (hasTranHasCompany != null)
                        {
                            hasTranHasCompany.CompanyId  = CompanyId;
                            hasTranHasCompany.Modifyer   = hasData.Modifyer;
                            hasTranHasCompany.ModifyDate = hasData.ModifyDate;
                            // update to table car has company
                            this.repositoryTranCompany.Update(hasTranHasCompany, hasTranHasCompany.TranHasCompanyId);
                        }
                        else
                        {
                            this.repositoryTranCompany.Add(new TblTranHasCompany()
                            {
                                CompanyId   = CompanyId,
                                CreateDate  = DateTime.Now,
                                Creator     = hasData.Creator,
                                TransportId = hasData.TransportId
                            });
                        }
                    }

                    return(new JsonResult(hasData, DefaultJsonSettings));
                }
            }
            return(new StatusCodeResult(500));
        }
        public IActionResult PostTblTransportDataToDataBase(int TransportReqID, [FromBody] TransportData2ViewModel nTransport)
        {
            if (nTransport != null)
            {
                if ((nTransport?.RoutineTransport ?? false) && nTransport?.RoutineCount > 0 && nTransport?.RoutineDay > 0)
                {
                    TblTransportData lastData = null;
                    var             dateCheck = nTransport.TransDate.Value;
                    System.TimeSpan time      = System.TimeSpan.Parse(nTransport.TransTime);

                    int Counter = 1;

                    while (dateCheck <= nTransport.TransDate.Value.AddDays((nTransport?.RoutineDay ?? 0) * (nTransport?.RoutineCount ?? 0)))
                    {
                        var routineData = this.mapper.Map <TransportData2ViewModel, TblTransportData>(nTransport);
                        routineData.TransDate = new System.DateTime(dateCheck.Year, dateCheck.Month, dateCheck.Day, time.Hours, time.Minutes, 0);

                        routineData.TransportNo = nTransport.TransportNo + "/R" + Counter.ToString("00");

                        lastData  = this.repository.InsertTblTransportDataToDataBase(routineData, TransportReqID);
                        dateCheck = dateCheck.AddDays(nTransport?.RoutineDay ?? 0);
                        Counter++;
                    }
                    if (lastData != null)
                    {
                        return(new JsonResult(lastData, DefaultJsonSettings));
                    }
                }
                else
                {
                    if (nTransport.TransDate != null)
                    {
                        var             tempDate = nTransport.TransDate.Value;
                        System.TimeSpan time     = System.TimeSpan.Parse(nTransport.TransTime);

                        nTransport.TransDate = new System.DateTime(tempDate.Year, tempDate.Month, tempDate.Day, time.Hours, time.Minutes, 0);
                    }

                    if (nTransport.FinalDate != null)
                    {
                        var tempDate2 = nTransport.FinalDate.Value;
                        var time2     = System.TimeSpan.Parse(nTransport.FinalTime);

                        nTransport.FinalDate = new System.DateTime(tempDate2.Year, tempDate2.Month, tempDate2.Day, time2.Hours, time2.Minutes, 0);
                    }

                    // Update to company
                    int?CompanyId = null;
                    if (nTransport.CompanyID.HasValue)
                    {
                        CompanyId = nTransport.CompanyID.Value;
                    }

                    var hasData = this.repository.InsertTblTransportDataToDataBase(
                        this.mapper.Map <TransportData2ViewModel, TblTransportData>(nTransport), TransportReqID);

                    if (hasData != null)
                    {
                        if (CompanyId.HasValue)
                        {
                            this.repositoryTranCompany.Add(new TblTranHasCompany()
                            {
                                CompanyId   = CompanyId,
                                CreateDate  = DateTime.Now,
                                Creator     = hasData.Creator,
                                TransportId = hasData.TransportId
                            });
                        }
                        return(new JsonResult(hasData, DefaultJsonSettings));
                    }
                }
            }
            return(new StatusCodeResult(500));
        }