public Tuple <Restriction, RestrictionDescription> GetDesc(Guid id)
        {
            lock (_session)
            {
                var item = _session.Query <Restriction>().FirstOrDefault(currentItem => currentItem.Uid == id);
                if (item != null)
                {
                    var desc = new RestrictionDescription();
                    if (!string.IsNullOrWhiteSpace(item.ExternalProgRef))
                    {
                        var programmes = DocumentSessionExtensions
                                         .GetAll <Programmes_ByIdAndSalesAreaStartDateTime.IndexedFields,
                                                  Programmes_ByIdAndSalesAreaStartDateTime,
                                                  ProgrammeTransformer_BySearch, ProgrammeNameModel>(_session,
                                                                                                     p => p.ExternalReference.Equals(item.ExternalProgRef,
                                                                                                                                     StringComparison.OrdinalIgnoreCase),
                                                                                                     out int totalResult, null, null);

                        desc.ProgrammeDescription = programmes?.FirstOrDefault()?.ProgrammeName;
                    }
                    if (item.ProductCode != 0)
                    {
                        var products = _session.GetAll <Product>(p => p.Externalidentifier.Equals(item.ProductCode.ToString(), StringComparison.OrdinalIgnoreCase),
                                                                 indexName: Product_BySearch.DefaultIndexName, isMapReduce: false);
                        desc.ProductDescription = products?.FirstOrDefault()?.Name;
                        desc.AdvertiserName     = products?.FirstOrDefault()?.AdvertiserName;
                    }
                    if (!string.IsNullOrWhiteSpace(item.ClashCode))
                    {
                        var clashes = _session.GetAll <Clash>(p => p.Externalref.Equals(item.ClashCode.ToString(), StringComparison.OrdinalIgnoreCase),
                                                              indexName: Clash_BySearch.DefaultIndexName, isMapReduce: false);
                        desc.ClashDescription = clashes?.FirstOrDefault()?.Description;
                    }
                    return(Tuple.Create(item, desc));
                }
                return(null);
            }
        }
Esempio n. 2
0
 private RestrictionWithDescModel LoadRestrictionWithDesc(Restriction item1, RestrictionDescription item2)
 {
     return(new RestrictionWithDescModel
     {
         ClashCode = item1.ClashCode,
         ClearanceCode = item1.ClearanceCode,
         ClockNumber = string.IsNullOrWhiteSpace(item1.ClockNumber)
             ? "0"
             : item1.ClockNumber,
         EndDate = item1.EndDate,
         ExternalProgRef = item1.ExternalProgRef,
         EndTime = item1.EndTime,
         IndexThreshold = item1.IndexThreshold,
         IndexType = item1.IndexType,
         LiveProgrammeIndicator = item1.LiveProgrammeIndicator,
         StartDate = item1.StartDate,
         StartTime = item1.StartTime,
         Uid = item1.Uid,
         SalesAreas = item1.SalesAreas,
         RestrictionDays = item1.RestrictionDays,
         SchoolHolidayIndicator = item1.SchoolHolidayIndicator,
         PublicHolidayIndicator = item1.PublicHolidayIndicator,
         RestrictionType = item1.RestrictionType,
         RestrictionBasis = item1.RestrictionBasis,
         ProgrammeCategory = item1.ProgrammeCategory,
         ExternalIdentifier = item1.ExternalIdentifier,
         ProgrammeClassification = item1.ProgrammeClassification,
         ProgrammeClassificationIndicator = item1.ProgrammeClassificationIndicator,
         TimeToleranceMinsBefore = item1.TimeToleranceMinsBefore,
         TimeToleranceMinsAfter = item1.TimeToleranceMinsAfter,
         ProductCode = item1.ProductCode,
         ProgrammeDescription = item2.ProgrammeDescription,
         ProductDescription = item2.ProductDescription,
         ClashDescription = item2.ClashDescription,
         AdvertiserName = item2.AdvertiserName
     });
 }