public ActionResult GetJobPreffer(JobPrefer jobPrefer)
        {
            try
            {
                var current = JobPreferService.Get(x => x.PartyId == jobPrefer.PartyId).FirstOrDefault();

                var entity = ObjectMapper.BaseConverter
                             .ConvertSourceToDest <IranMarketer.Domain.Entity.JobPrefer, JobPrefer>(current);

                var session         = CoreContainer.Container.Resolve <ISession>();
                var prefferCategoru = session.Find <JobPreferJobCategory>(x => x
                                                                          .Where($"{nameof(JobPreferJobCategory.JobPreferId):C}=@Id")
                                                                          .WithParameters(new { Id = current?.Id ?? 0 }));
                var PrefferIndustry = session.Find <JobPreferIndustry>(x => x
                                                                       .Where($"{nameof(JobPreferIndustry.JobPreferId):C}=@Id")
                                                                       .WithParameters(new { Id = current?.Id ?? 0 }));

                foreach (var jobCategory in prefferCategoru)
                {
                    entity.JobCategories.Add(JobCategoryProvider.GetKey(jobCategory.jobCategoryId));
                }
                foreach (var industry in PrefferIndustry)
                {
                    entity.Industries.Add(IndustryProvider.GetKey(industry.IndustryId));
                }

                SuccessApiResponse.Result = entity;

                return(Json(SuccessApiResponse, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                return(Json(ErrorApiResponse, JsonRequestBehavior.AllowGet));
            }
        }
        public ActionResult SaveJobPreffer(JobPrefer jobPrefer)
        {
            try
            {
                var current = JobPreferService.Get(x => x.PartyId == jobPrefer.PartyId).FirstOrDefault();

                var entity = ObjectMapper.BaseConverter
                             .ConvertSourceToDest <JobPrefer, IranMarketer.Domain.Entity.JobPrefer>(jobPrefer);
                entity.Modified   = DateTime.Now;
                entity.Created    = current?.Created ?? DateTime.Now;
                entity.CreatedBy  = current?.CreatedBy ?? jobPrefer.UserName;
                entity.ModifiedBy = jobPrefer.UserName;
                entity.Id         = current?.Id ?? 0;
                var dbFactory = CoreContainer.Container.Resolve <IDbFactory>();
                using (var uow = dbFactory.Create <IUnitOfWork, ISession>(IsolationLevel.Serializable))
                {
                    try
                    {
                        var id = JobPreferService.SaveOrUpdate(entity, uow);

                        uow.BulkDelete <JobPreferJobCategory>(statement => statement
                                                              .Where($"{nameof(JobPreferJobCategory.JobPreferId):C}=@Id").WithParameters(new { Id = id }).AttachToTransaction(uow.Transaction));


                        uow.BulkDelete <JobPreferIndustry>(statement => statement
                                                           .Where($"{nameof(JobPreferIndustry.JobPreferId):C}=@Id").WithParameters(new { Id = id }).AttachToTransaction(uow.Transaction));

                        foreach (var category in jobPrefer.JobCategories)
                        {
                            uow.Insert(new JobPreferJobCategory
                            {
                                JobPreferId   = id,
                                jobCategoryId = category.Id
                            });
                        }
                        foreach (var indusry in jobPrefer.Industries)
                        {
                            uow.Insert(new JobPreferIndustry
                            {
                                JobPreferId = id,
                                IndustryId  = indusry.Id
                            });
                        }
                    }
                    catch (Exception ex)
                    {
                        uow.Rollback();
                        throw;
                    }
                }
                JobPreferService.SaveOrUpdate(entity);
                return(Json(SuccessApiResponse, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                return(Json(ErrorApiResponse, JsonRequestBehavior.AllowGet));
            }
        }