public int RemoveFAdetail(int FAid)
        {
            try
            {
                IFAtargetOperations           targetOperation     = new FAtargetOperations();
                IFAeducationDetailOperations  educationOperation  = new FAeducationDetailOperations();
                IFAexperianceDetailOperations experienceOperation = new FAexperianceDetailOperations();
                IFAapprovalOperations         approvalOperation   = new FAapprovalOperations();
                IFAaddressDetailOperations    addressOperation    = new FAaddressDetailOperations();

                FAdetail faDetail = db.FAdetails.Select(x => x).Where(x => x.Id == FAid).FirstOrDefault();
                if (faDetail != null)
                {
                    int Faid = faDetail.Id;
                    //targetOperation.RemoveTargetsForFA(Faid);
                    //educationOperation.RemoveEducationDetailForFA(Faid);
                    //experienceOperation.RemoveExperienceDetailForFA(Faid);
                    //approvalOperation.RemoveApprovalDetailForFA(Faid);
                    //addressOperation.RemoveFAaddressDetail(Faid);
                    //db.FAdetails.Remove(faDetail);
                    faDetail.Status = 3;
                }
                return(db.SaveChanges());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        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 InsertFAdetail(FAdetail faDetail)
 {
     try
     {
         faDetail.FormNo = (faDetail.FirstName.Length > 3? faDetail.FirstName.Substring(0, 3):faDetail.FirstName.Substring(0, faDetail.FirstName.Length)) + faDetail.EnrollDate.Value.Day + faDetail.EnrollDate.Value.Month + faDetail.EnrollDate.Value.Year;
         db.FAdetails.Add(faDetail);
         db.SaveChanges();
         return(faDetail.Id);
     }
     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 int UpdateFAdetail(FAdetail faDetail)
        {
            try
            {
                IFAtargetOperations           targetOperation     = new FAtargetOperations();
                IFAeducationDetailOperations  educationOperation  = new FAeducationDetailOperations();
                IFAexperianceDetailOperations experienceOperation = new FAexperianceDetailOperations();
                IFAapprovalOperations         approvalOperation   = new FAapprovalOperations();
                IFAaddressDetailOperations    addressOperation    = new FAaddressDetailOperations();

                FAdetail faDetailToUpdate = db.FAdetails.Select(x => x).Where(x => x.Id == faDetail.Id).FirstOrDefault();

                if (faDetailToUpdate != null)
                {
                    faDetailToUpdate.BirthDate       = faDetail.BirthDate;
                    faDetailToUpdate.FAdesignationId = faDetail.FAdesignationId;
                    faDetailToUpdate.FAname          = faDetail.FAname;
                    faDetailToUpdate.FAStatu         = faDetail.FAStatu;
                    faDetailToUpdate.FirstName       = faDetail.FirstName;
                    faDetailToUpdate.IsExperienced   = faDetail.IsExperienced;
                    faDetailToUpdate.LastName        = faDetail.LastName;
                    faDetailToUpdate.MiddleName      = faDetail.MiddleName;
                    faDetailToUpdate.Status          = faDetail.Status;
                    faDetailToUpdate.UpdatedBy       = faDetail.UpdatedBy;
                    faDetailToUpdate.LastUpdated     = faDetail.LastUpdated;
                }

                targetOperation.UpdateTargetForFA(faDetail.FAtargetDetails.ToList());
                educationOperation.UpdateEducationDetailForFA(faDetail.FAeducationDetails.ToList());
                experienceOperation.UpdateExperienceDetailForFA(faDetail.FAexperianceDetails.ToList());
                approvalOperation.UpdateApprovalForFA(faDetail.FAapprovals.ToList());
                addressOperation.UpdateFAaddressDetail(faDetail.FAaddressDetails.ToList());


                return(db.SaveChanges());
            }
            catch (Exception ex)
            {
                throw;
            }
        }