private static void MapTo(this IHaveDescriptionEntity entity, JobAdDescription description, ILocationQuery locationQuery, IIndustriesQuery industriesQuery) { description.PositionTitle = entity.positionTitle; description.CompanyName = entity.employerCompanyName; description.Summary = entity.summary; description.Content = entity.content; description.BulletPoints = TextUtil.StringToArrayForPersistence(BulletPointSeparator, entity.bulletPoints, true); description.JobTypes = (JobTypes)entity.jobTypes; description.Package = entity.packageDetails; description.ResidencyRequired = entity.residencyRequired; description.Location = entity.JobAdLocationEntities.Map(locationQuery); description.Industries = entity.JobAdIndustryEntities.Map(industriesQuery); description.Salary = new Salary { LowerBound = entity.minSalary, UpperBound = entity.maxSalary, Rate = (SalaryRate)entity.salaryRateType, Currency = Currency.AUD }; description.ParsedSalary = new Salary { LowerBound = entity.minParsedSalary, UpperBound = entity.maxParsedSalary, Rate = (SalaryRate)entity.salaryRateType, Currency = Currency.AUD }; }
private static void CheckDeleteLocation(JobAdsDataContext dc, JobAd jobAd, IHaveDescriptionEntity entity) { var entityLocations = Locations(entity); if (entityLocations == 0) { return; } var locations = Locations(jobAd); // There were locations but they have now been removed. if (locations == 0) { DeleteLocations(dc, entity); } // There were locations but there is now a different number of them. // (shouldn't happen, only one location per job ad is allowed but just in case ...) if (locations > 0 && entityLocations != locations) { DeleteLocations(dc, entity); } }
private static void DeleteIndustries(JobAdsDataContext dc, IHaveDescriptionEntity entity) { // Cannot update in place so delete whatever is already there. if (entity.JobAdIndustryEntities != null && entity.JobAdIndustryEntities.Count > 0) { dc.JobAdIndustryEntities.DeleteAllOnSubmit(entity.JobAdIndustryEntities); } }
private static void MapTo(this JobAd jobAd, IHaveDescriptionEntity entity) { entity.employerCompanyName = jobAd.Description.CompanyName; entity.content = jobAd.Description.Content; entity.summary = jobAd.Description.Summary; entity.bulletPoints = TextUtil.StringFromArrayForPersistence(BulletPointSeparator, jobAd.Description.BulletPoints == null ? null : jobAd.Description.BulletPoints.ToArray()); entity.jobTypes = (byte)jobAd.Description.JobTypes; entity.packageDetails = jobAd.Description.Package; entity.positionTitle = jobAd.Description.PositionTitle; entity.residencyRequired = jobAd.Description.ResidencyRequired; entity.minSalary = jobAd.Description.Salary == null ? null : jobAd.Description.Salary.LowerBound; entity.maxSalary = jobAd.Description.Salary == null ? null : jobAd.Description.Salary.UpperBound; entity.minParsedSalary = jobAd.Description.ParsedSalary == null ? null : jobAd.Description.ParsedSalary.LowerBound; entity.maxParsedSalary = jobAd.Description.ParsedSalary == null ? null : jobAd.Description.ParsedSalary.UpperBound; entity.salaryRateType = (byte) (jobAd.Description.Salary == null || jobAd.Description.Salary.IsEmpty ? jobAd.Description.ParsedSalary == null || jobAd.Description.ParsedSalary.IsEmpty ? 0 : jobAd.Description.ParsedSalary.Rate : jobAd.Description.Salary.Rate); entity.JobAdIndustryEntities = jobAd.Description.Industries.Map(jobAd.Id); // Update the location in place if able. if (jobAd.Description.Location != null) { if (entity.JobAdLocationEntities == null || entity.JobAdLocationEntities.Count != 1) { entity.JobAdLocationEntities = jobAd.Description.Location.Map(jobAd.Id); } else { jobAd.Description.Location.MapTo(entity.JobAdLocationEntities[0].LocationReferenceEntity); } } }
private static void DeleteLocations(JobAdsDataContext dc, IHaveDescriptionEntity entity) { dc.LocationReferenceEntities.DeleteAllOnSubmit(from e in entity.JobAdLocationEntities select e.LocationReferenceEntity); dc.JobAdLocationEntities.DeleteAllOnSubmit(entity.JobAdLocationEntities); entity.JobAdLocationEntities.Clear(); }
private static int Locations(IHaveDescriptionEntity entity) { return(entity.JobAdLocationEntities == null ? 0 : entity.JobAdLocationEntities.Count); }