public int PostFAdetailEntities(FAdetailEntities faDetailEntities)
        {
            try
            {
                IFAdetailOperations               faDetailOperations            = new FAdetailOperations();
                IFAaddressDetailOperations        faAddressDetailOperation      = new FAaddressDetailOperations();
                IFAeducationDetailOperations      faEducationDetailOperation    = new FAeducationDetailOperations();
                IFAexperianceDetailOperations     faExperienceDetailOperation   = new FAexperianceDetailOperations();
                IFAtargetOperations               faTargetOperation             = new FAtargetOperations();
                IFAtargetVillageMappingOperations targetVillageMappingOperation = new FAtargetVillageMappingOperations();
                IFAapprovalOperations             faApprovalOperation           = new FAapprovalOperations();

                IFAuploadedDocumentDetailOperations faUploadDocumentDetailOperations = new FAuploadedDocumentDetailOperations();

                FAdetail faDetail = new FAdetail();
                faDetail = MapEntities.Map <FAdetailEntities, FAdetail>(faDetailEntities);
                int faDetailId = faDetailOperations.InsertFAdetail(faDetail);

                FAaddressDetail faAddressDetail = new FAaddressDetail();
                faAddressDetail            = MapEntities.Map <FAaddressDetailEntities, FAaddressDetail>(faDetailEntities.AddressDetailEntities);
                faAddressDetail.FAdetailId = faDetailId;
                int faAddressDetailId = faAddressDetailOperation.InsertFAAddressDetail(faAddressDetail);

                IEnumerable <FAeducationDetail> faEducationDetailList = new List <FAeducationDetail>();
                faEducationDetailList = MapEntities.MapIEnumerableCollection <FAeducationDetailEntities, FAeducationDetail>(faDetailEntities.EducationDetailEntityList);
                faEducationDetailList.ToList().ForEach(x => x.FAid = faDetailId);
                faEducationDetailList = faEducationDetailOperation.InsertFAeducationDetail(faEducationDetailList);

                IEnumerable <FAexperianceDetail> faExperienceDetailList = new List <FAexperianceDetail>();
                faExperienceDetailList = MapEntities.MapIEnumerableCollection <FAexperianceDetailEntities, FAexperianceDetail>(faDetailEntities.ExperienceDetailEntityList);
                faExperienceDetailList.ToList().ForEach(x => x.FAid = faDetailId);
                faExperienceDetailList = faExperienceDetailOperation.InsertFAexperienceDetail(faExperienceDetailList);

                IEnumerable <FAtargetDetail> faTargetDetailList = new List <FAtargetDetail>();
                faTargetDetailList = MapEntities.MapIEnumerableCollection <FAtargetDetailEntities, FAtargetDetail>(faDetailEntities.TargetDetailEntityList);
                faTargetDetailList.ToList().ForEach(x => x.FAid = faDetailId);
                for (int faTargetEntityCount = 0; faTargetEntityCount < faDetailEntities.TargetDetailEntityList.Count(); faTargetEntityCount++)
                {
                    faTargetDetailList.ElementAt(faTargetEntityCount).FAtargetVillageMappings = MapEntities.MapIEnumerableCollection <FAtargetVillageMappingEntities, FAtargetVillageMapping>(faDetailEntities.TargetDetailEntityList.ElementAt(faTargetEntityCount).TargetCropsEntityMappingList).ToList();
                }
                faTargetDetailList = faTargetOperation.InsertTargetsForFA(faTargetDetailList);

                FAapproval faApproval = new FAapproval();
                faApproval      = MapEntities.Map <FAapprovalEntities, FAapproval>(faDetailEntities.ApprovalEntities);
                faApproval.FAid = faDetailId;
                faApproval      = faApprovalOperation.InsertFAapproval(faApproval);

                IEnumerable <FAuploadedDocumentDetail> fauploadDetailList = new List <FAuploadedDocumentDetail>();
                fauploadDetailList = MapEntities.MapIEnumerableCollection <FAuploadedDocumentDetailEntities, FAuploadedDocumentDetail>(faDetailEntities.UploadedDocumentList);
                fauploadDetailList.ToList().ForEach(x => x.FAid = faDetailId);
                fauploadDetailList = faUploadDocumentDetailOperations.InsertUploadedDocumentDetailIst(fauploadDetailList);

                return(faDetailId);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public int UpdateFAdetailById(FAdetailEntities faDetailEntities)
        {
            try
            {
                IFAdetailOperations faDetailOperation = new FAdetailOperations();

                List <FAaddressDetailEntities> addressDetailList = new List <FAaddressDetailEntities>();
                addressDetailList.Add(faDetailEntities.AddressDetailEntities);
                List <FAapprovalEntities> approvalDetailList = new List <FAapprovalEntities>();
                approvalDetailList.Add(faDetailEntities.ApprovalEntities);

                FAdetail faDetail;
                if (faDetailEntities != null)
                {
                    faDetail = MapEntities.Map <FAdetailEntities, FAdetail>(faDetailEntities);
                    faDetail.FAaddressDetails = faDetailEntities.AddressDetailEntities != null?MapEntities.MapList <FAaddressDetailEntities, FAaddressDetail>(addressDetailList) : new List <FAaddressDetail>();

                    faDetail.FAapprovals = faDetailEntities.ApprovalEntities != null?MapEntities.MapList <FAapprovalEntities, FAapproval>(approvalDetailList) : new List <FAapproval>();

                    faDetail.FAeducationDetails = faDetailEntities.EducationDetailEntityList != null?MapEntities.MapList <FAeducationDetailEntities, FAeducationDetail>(faDetailEntities.EducationDetailEntityList) : new List <FAeducationDetail>();

                    faDetail.FAexperianceDetails = faDetailEntities.ExperienceDetailEntityList != null?MapEntities.MapList <FAexperianceDetailEntities, FAexperianceDetail>(faDetailEntities.ExperienceDetailEntityList.ToList()) : new List <FAexperianceDetail>();

                    faDetail.FAtargetDetails           = MapEntities.MapList <FAtargetDetailEntities, FAtargetDetail>(faDetailEntities.TargetDetailEntityList.ToList());
                    faDetail.FAuploadedDocumentDetails = faDetailEntities.UploadedDocumentList != null?MapEntities.MapList <FAuploadedDocumentDetailEntities, FAuploadedDocumentDetail>(faDetailEntities.UploadedDocumentList.ToList()) : new List <FAuploadedDocumentDetail>();

                    faDetail.Status = faDetailEntities.Status;
                    for (int targetMappingCount = 0; targetMappingCount < faDetail.FAtargetDetails.Count(); targetMappingCount++)
                    {
                        faDetail.FAtargetDetails.ElementAt(targetMappingCount).FAtargetVillageMappings = MapEntities.MapIEnumerableCollection <FAtargetVillageMappingEntities, FAtargetVillageMapping>(faDetailEntities.TargetDetailEntityList.ElementAt(targetMappingCount).TargetCropsEntityMappingList).ToList();
                    }
                }
                else
                {
                    faDetail = new FAdetail();
                }

                int returnValue = faDetailOperation.UpdateFAdetail(faDetail);
                return(returnValue);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public FAdetailEntities GetFAdetailEntityById(string id)
        {
            try
            {
                int id1 = Convert.ToInt32(id);
                IFAdetailOperations faDetailOperation = new FAdetailOperations();
                FAdetail            faDetail          = faDetailOperation.GetFAdetailById(id1);
                FAdetailEntities    faDetailEntity;
                PocketController    pocketController   = new PocketController();
                DistrictController  districtContorller = new DistrictController();
                if (faDetail != null)
                {
                    faDetailEntity = MapEntities.Map <FAdetail, FAdetailEntities>(faDetail);
                    faDetailEntity.AddressDetailEntities = faDetail.FAaddressDetails != null?MapEntities.Map <FAaddressDetail, FAaddressDetailEntities>(faDetail.FAaddressDetails.ElementAt(0)) : new FAaddressDetailEntities();

                    faDetailEntity.AddressDetailEntities.DistrictList = districtContorller.GetDistrictOfState(faDetailEntity.AddressDetailEntities.StateId.Value);
                    faDetailEntity.AddressDetailEntities.PocketList   = pocketController.GetActivePocketsByDistrictId(faDetailEntity.AddressDetailEntities.District.Value);
                    faDetailEntity.ApprovalEntities = faDetail.FAapprovals != null?MapEntities.Map <FAapproval, FAapprovalEntities>(faDetail.FAapprovals.ElementAt(0)) : new FAapprovalEntities();

                    faDetailEntity.EducationDetailEntityList = faDetail.FAeducationDetails != null?MapEntities.MapList <FAeducationDetail, FAeducationDetailEntities>(faDetail.FAeducationDetails.ToList()) : new List <FAeducationDetailEntities>();

                    faDetailEntity.ExperienceDetailEntityList = faDetail.FAexperianceDetails != null?MapEntities.MapList <FAexperianceDetail, FAexperianceDetailEntities>(faDetail.FAexperianceDetails.ToList()) : new List <FAexperianceDetailEntities>();

                    faDetailEntity.TargetDetailEntityList = MapEntities.MapList <FAtargetDetail, FAtargetDetailEntities>(faDetail.FAtargetDetails.ToList());
                    faDetailEntity.UploadedDocumentList   = MapEntities.MapList <FAuploadedDocumentDetail, FAuploadedDocumentDetailEntities>(faDetail.FAuploadedDocumentDetails.ToList());
                    faDetailEntity.pocketDetail           = pocketController.GetPocketDetail(faDetailEntity.AddressDetailEntities.PocketId.Value);
                    faDetailEntity.StatusName             = faDetail.FAStatu.FAstatus;

                    for (int targetMappingCount = 0; targetMappingCount < faDetailEntity.TargetDetailEntityList.Count(); targetMappingCount++)
                    {
                        faDetailEntity.TargetDetailEntityList.ElementAt(targetMappingCount).TargetCropsEntityMappingList = MapEntities.MapIEnumerableCollection <FAtargetVillageMapping, FAtargetVillageMappingEntities>(faDetail.FAtargetDetails.ElementAt(targetMappingCount).FAtargetVillageMappings).ToList();
                    }
                }
                else
                {
                    faDetailEntity = new FAdetailEntities();
                }

                return(faDetailEntity);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public ActionResult UpdateFAdetail(int id)
        {
            FAdetailModel faDetailModel = new FAdetailModel();

            faDetailModel.faDetailPageUIvalues = new FAdetailPageUIvalues();
            ServiceInputObject serviceInputsForDocType = new ServiceInputObject
            {
                baseURL        = ConfigSettings.WebApiBaseAddress,
                controllerName = "FAdetail",
                methodName     = "GetFAdetailEntityById",
                parameterValue = Convert.ToString(id)
            };
            FAdetailEntities faDetailEntity = new FAdetailEntities();

            faDetailEntity = ServiceMethods.GenerateGatRequest <FAdetailEntities>(serviceInputsForDocType);
            faDetailModel.faDetailPageUIvalues = GetFAdetailPageUiValues();
            faDetailModel.faDetailPageUIvalues = SetPocketDetailForModel(faDetailEntity.pocketDetail, faDetailEntity.AddressDetailEntities, faDetailModel.faDetailPageUIvalues);
            faDetailModel.faDetailEntities     = faDetailEntity;
            faDetailModel.ActionType           = ActionTypeEnum.Update;
            return(View("AddFA", faDetailModel));
        }