public GetProcessCardResponseDto GetProcessCard(string vendorCode)
        {
            var response = new GetProcessCardResponseDto()
            {
                GetProcessCardMasterResponse = new List <ProcessCardMasterResponse>()
            };
            var processCardMasterResponse = new ProcessCardMasterResponse();

            var model = processCardRepository.GetProcessCard(vendorCode);

            if (model != null)
            {
                processCardMasterResponse = GetProcessCardMapper((List <GetProcessCardQMModel>)model.GetProcessCardDetailsQMModel, processCardMasterResponse);
            }

            foreach (var processCardDetails in processCardMasterResponse.GetProcessCardDetailsResponse)
            {
                var getsingle = new ProcessCardMasterResponse
                {
                    GetProcessCardDetailsResponse = new List <ProcessCardDetailsResponse>()
                };

                var processCardDetailsItems = new ProcessCardDetailsResponse();
                processCardDetailsItems.PartCode             = processCardDetails.PartCode;
                processCardDetailsItems.ItemCode             = processCardDetails.ItemCode;
                processCardDetailsItems.SequenceNumber       = processCardDetails.SequenceNumber;
                processCardDetailsItems.SerialNo             = processCardDetails.SerialNo;
                processCardDetailsItems.Description          = processCardDetails.Description;
                processCardDetailsItems.DimensionMax         = processCardDetails.DimensionMax;
                processCardDetailsItems.DimensionMin         = processCardDetails.DimensionMin;
                processCardDetailsItems.ParameterCode        = processCardDetails.ParameterCode;
                processCardDetailsItems.ParameterDescription = processCardDetails.ParameterDescription;
                processCardDetailsItems.InstrumentCode       = processCardDetails.InstrumentCode;
                processCardDetailsItems.InstrumentName       = processCardDetails.InstrumentName;
                processCardDetailsItems.ToolCode             = processCardDetails.ToolCode;
                processCardDetailsItems.ToolDescription      = processCardDetails.ToolDescription;
                processCardDetailsItems.DRFlag         = processCardDetails.DRFlag;
                processCardDetailsItems.Symbol         = processCardDetails.Symbol;
                processCardDetailsItems.Datum          = processCardDetails.Datum;
                processCardDetailsItems.DatumDimension = processCardDetails.DatumDimension;
                processCardDetailsItems.BooleanNumber  = processCardDetails.BooleanNumber;
                processCardDetailsItems.IsNew          = false;

                if (response.GetProcessCardMasterResponse.Count > 0)
                {
                    var isExist = response.GetProcessCardMasterResponse.Any(sequenceNumber => sequenceNumber.SequenceNumber == processCardDetails.SequenceNumber && sequenceNumber.PartCode == processCardDetails.PartCode);
                    if (isExist)
                    {
                        var index = response.GetProcessCardMasterResponse.FindIndex(a => a.SequenceNumber == processCardDetails.SequenceNumber && a.PartCode == processCardDetails.PartCode);

                        response.GetProcessCardMasterResponse[index].GetProcessCardDetailsResponse.Add(processCardDetailsItems);
                    }
                    else
                    {
                        getsingle.PartCode           = processCardDetails.PartCode;
                        getsingle.PartDescription    = processCardDetails.PartDescription;
                        getsingle.SequenceNumber     = processCardDetails.SequenceNumber;
                        getsingle.MachineCode        = processCardDetails.MachineCode;
                        getsingle.JigCode            = processCardDetails.JigCode;
                        getsingle.RunningTime        = processCardDetails.RunningTime;
                        getsingle.SettingTime        = processCardDetails.SettingTime;
                        getsingle.MachineDescription = processCardDetails.MachineDescription;
                        getsingle.JigDescription     = processCardDetails.JigDescription;
                        getsingle.VendorCode         = processCardDetails.VendorCode;
                        getsingle.VendorName         = processCardDetails.VendorName;
                        getsingle.MaxSerial          = processCardDetails.MaxSerial;
                        getsingle.IsNew    = false;
                        getsingle.ItemCode = processCardDetails.ItemCode;
                        getsingle.GetProcessCardDetailsResponse.Add(processCardDetailsItems);

                        response.GetProcessCardMasterResponse.Add(getsingle);
                    }
                }
                else
                {
                    getsingle.PartCode           = processCardDetails.PartCode;
                    getsingle.PartDescription    = processCardDetails.PartDescription;
                    getsingle.SequenceNumber     = processCardDetails.SequenceNumber;
                    getsingle.MachineCode        = processCardDetails.MachineCode;
                    getsingle.JigCode            = processCardDetails.JigCode;
                    getsingle.MachineDescription = processCardDetails.MachineDescription;
                    getsingle.JigDescription     = processCardDetails.JigDescription;
                    getsingle.RunningTime        = processCardDetails.RunningTime;
                    getsingle.SettingTime        = processCardDetails.SettingTime;
                    getsingle.VendorCode         = processCardDetails.VendorCode;
                    getsingle.VendorName         = processCardDetails.VendorName;
                    getsingle.MaxSerial          = processCardDetails.MaxSerial;
                    getsingle.IsNew    = false;
                    getsingle.ItemCode = processCardDetails.ItemCode;
                    getsingle.GetProcessCardDetailsResponse.Add(processCardDetailsItems);

                    response.GetProcessCardMasterResponse.Add(getsingle);
                }
            }

            return(response);
        }
        private static ProcessCardMasterResponse GetProcessCardMapper(List <GetProcessCardQMModel> list, ProcessCardMasterResponse getProcessCardMasterResponse)
        {
            Mapper.CreateMap <GetProcessCardQMModel, ProcessCardDetailsResponse>();
            getProcessCardMasterResponse.GetProcessCardDetailsResponse =
                Mapper.Map <List <GetProcessCardQMModel>, List <ProcessCardDetailsResponse> >(list);

            return(getProcessCardMasterResponse);
        }