public WorkOrderResponseDto AddWorkOrder(WorkOrderRequestDto workOrderRequestDto)
        {
            WorkOrderResponseDto response = new WorkOrderResponseDto();

            try
            {
                response = bWorkOrderProvider.AddWorkOrder(workOrderRequestDto);
                response.ServiceResponseStatus = 1;
            }
            catch (SSException applicationException)
            {
                response = new WorkOrderResponseDto
                {
                    ServiceResponseStatus = 0,
                    ErrorMessage          = applicationException.Message,
                    ErrorCode             = applicationException.ExceptionCode
                };
            }
            catch (Exception exception)
            {
                response = new WorkOrderResponseDto
                {
                    ServiceResponseStatus = 0,
                    ErrorCode             = ExceptionAttributes.ExceptionCodes.InternalServerError,
                    ErrorMessage          = exception.Message
                };
            }

            return(response);
        }
        public WorkOrderResponseDto AddWorkOrder(WorkOrderRequestDto workOrderRequestDto)
        {
            var    getWorkOrderClientSerialNoQM = new GetWorkOrderClientSerialNoQM();
            string ClientSerialStartName        = System.Configuration.ConfigurationManager.AppSettings["ClientStartName"].ToString();
            string CurrentMonth      = Constant.GetMonthByAlphabet(System.DateTime.UtcNow.Month);
            string CurrentYear       = Constant.GetYearByAlphabet(System.DateTime.UtcNow.Year);
            var    clientSerialDigit = ClientSerialStartName + CurrentYear + CurrentMonth;

            getWorkOrderClientSerialNoQM = workOrderRepository.GetWorkOrderClientSerialNo(clientSerialDigit);

            string clientSerialNo            = "";
            string clientSerialNumber        = "";
            var    existingclientSerialDigit = "";

            if (!string.IsNullOrEmpty(getWorkOrderClientSerialNoQM.WorkOrderClientSerialNo))
            {
                clientSerialNumber        = getWorkOrderClientSerialNoQM.WorkOrderClientSerialNo.ToString();
                existingclientSerialDigit = getWorkOrderClientSerialNoQM.WorkOrderClientChar;
            }

            #region Section For to save the work order master common details
            workOrderRepository.AddWorkOrderMasterCommon(workOrderRequestDto.WorkOrderType, workOrderRequestDto.WorkOrderNumber, workOrderRequestDto.WorkOrderDate, workOrderRequestDto.VendorCode);
            #endregion

            #region Section For to save the work order masters information & work order details

            foreach (var workOrderMaster in workOrderRequestDto.WorkOrderMasterDetails)
            {
                var workOrderMasterItems = new List <WorkOrderMasterItems>();

                var cModel = new AddWorkOrderCM();
                var workOrderMasterDetails = new WorkOrderMasterItems
                {
                    WorkOrderNumber    = workOrderMaster.WorkOrderNumber,
                    WorkOrderSerial    = workOrderMaster.WorkOrderSerial,
                    DCNumber           = workOrderMaster.DCNumber,
                    DCDate             = workOrderMaster.DCDate,
                    DCSerial           = workOrderMaster.DCSerial,
                    PONumber           = workOrderMaster.PONumber,
                    PODate             = workOrderMaster.PODate,
                    POSerial           = workOrderMaster.POSerial,
                    DrawingNo          = workOrderMaster.DrawingNo,
                    DrawingRev         = workOrderMaster.DrawingRev,
                    PartCode           = workOrderMaster.PartCode,
                    WOQuantity         = workOrderMaster.WOQuantity,
                    Rate               = workOrderMaster.Rate,
                    DeliveryDate       = workOrderMaster.DeliveryDate,
                    DCQuantity         = 0,
                    RejectedQuantity   = 0,
                    InvoicedQuantity   = 0,
                    SCSentQuantity     = 0,
                    SCReceivedQuantity = 0,
                    CreatedBy          = workOrderMaster.CreatedBy,
                    CreatedDateTime    = workOrderMaster.CreatedDateTime,
                    VendorCode         = workOrderMaster.VendorCode,
                    MaterialCode       = workOrderMaster.MaterialCode,
                    ItemCode           = workOrderMaster.ItemCode,
                    HeatNo             = workOrderMaster.HeatNo
                };

                workOrderMasterItems.Add(workOrderMasterDetails);

                cModel.WorkOrderMasterListItems = workOrderMasterItems;

                // Section to add the work order master information
                var response = workOrderRepository.AddWorkOrder(cModel);



                // Section to add the work order details information
                var quantity        = cModel.WorkOrderMasterListItems.FirstOrDefault().WOQuantity;
                var heatNo          = cModel.WorkOrderMasterListItems.FirstOrDefault().HeatNo;
                var woSerialNo      = cModel.WorkOrderMasterListItems.FirstOrDefault().WorkOrderSerial;
                var workOrderNumber = cModel.WorkOrderMasterListItems.FirstOrDefault().WorkOrderNumber;

                if (!string.IsNullOrEmpty(clientSerialNumber))
                {
                    //var existingclientSerialDigit = clientSerialNo.ToString().Substring(0, 3);

                    if (!clientSerialDigit.Equals(existingclientSerialDigit))
                    {
                        string serialNoStarting = "0";
                        clientSerialNo = clientSerialDigit + serialNoStarting;
                    }
                    else
                    {
                        clientSerialNo = existingclientSerialDigit + clientSerialNumber;
                    }
                }
                else
                {
                    string serialNoStarting = "0";
                    clientSerialNo = clientSerialDigit + serialNoStarting;
                }

                for (int i = 0; i < quantity; i++)
                {
                    var splitSerialChar = clientSerialNo.ToString().Substring(0, 3);
                    var splitSerialNo   = clientSerialNo.ToString().Substring(3);
                    clientSerialNo            = splitSerialChar + ((Convert.ToInt64(splitSerialNo) + 1));
                    clientSerialNumber        = ((Convert.ToInt64(splitSerialNo) + 1)).ToString();
                    existingclientSerialDigit = splitSerialChar;
                    WorkOrderDetailsCM workOrderDetailsCM = new WorkOrderDetailsCM()
                    {
                        WorkOrderNumber = workOrderNumber,
                        WorkOrderSerial = woSerialNo,
                        SerialNo        = clientSerialNo,
                        HeatNo          = heatNo,
                        Invoice         = false,
                        JTC             = false,
                        SubContract     = false,
                        DC = false,
                        CreatedDateTime = System.DateTime.UtcNow
                    };
                    workOrderRepository.AddWorkOrderDetails(workOrderDetailsCM);
                }
            }

            #endregion


            return(new WorkOrderResponseDto());
        }