public async Task AttachNewPlaceShouldThrowIfEntityWasNotFound() { var dataAccessModel = new EntitySalesDataAccessModel { Id = Guid.NewGuid(), ActiveEntity = Array.Empty <EntityEntityDataAccessModel>() }; GetRepository().EntitySalesToReturn = new EntitySales(dataAccessModel); Func <Task> act = () => GetService().AttachNewPlace(dataAccessModel.Id, Guid.NewGuid(), "MOW1", PredefinedUsers.MockUser); await Assert.ThrowsAsync <DomainException>(act); }
public EntitySales(EntitySalesDataAccessModel model) { Id = model.Id; BasePointId = model.BasePointId; Address = model.Address; if (model.EntityDeal != null) { Deal = new EntityDeal(model.EntityDeal);; } DateForActiveEntity = model.DateForActiveEntity; _activeEntity = model.ActiveEntity?.Select(v => new EntityEntity(v)).ToList() ?? new List <EntityEntity>(); }
public async Task ShouldAddNewPlace() { var targetEntityGuid = Guid.NewGuid(); var dataAccessModel = new EntitySalesDataAccessModel { Id = Guid.NewGuid(), ActiveEntity = new[] { new EntityEntityDataAccessModel { Id = targetEntityGuid, Places = Array.Empty <EntityPlaceDataAccessModel>(), SystematicType = EntitySystematicType.ElioET }, new EntityEntityDataAccessModel { Id = Guid.NewGuid(), Places = Array.Empty <EntityPlaceDataAccessModel>(), SystematicType = EntitySystematicType.ElioET } } }; var EntitySales = new EntitySales(dataAccessModel); GetRepository().EntitySalesToReturn = EntitySales; var now = DateTime.Now; GetDatetimeProvider().LocalNow = now; await GetService().AttachNewPlace(dataAccessModel.Id, targetEntityGuid, "MOW1", PredefinedUsers.MockUser); var Place = EntitySales.ActiveEntity.First(v => v.Id == targetEntityGuid).EntityPlaces.FirstOrDefault(v => v.Pcc == "MOW1"); Assert.NotNull(Place); Assert.Equal("MOW1", Place.Pcc); Assert.NotEqual(Guid.Empty, (Guid)Place.Id); Assert.Equal(now.Date, Place.AuthorizationDate); }
public async Task <EntitySales> GetById(Guid id) { var MainPoint = await _context.EusMainPoint .Include(x => x.Organization) .FirstOrDefaultAsync(s => s.Id == id); if (MainPoint == null) { return(null); } var model = new EntitySalesDataAccessModel { Id = MainPoint.Id, MainPointId = MainPoint.MainPointId, Address = MainPoint.Address, EntityAgent = MainPoint.Organization == null ? null : new EntityAgentDataAccessModel() { Id = MainPoint.Organization.PartnerGuid, Code = MainPoint.Organization.Code, Name = MainPoint.Organization.Name } }; return(new EntitySales(model)); }
public async Task <EntitySales> GetByEntityId(Guid id) { var EntityExpiration = await _context.EntityExpiration .Where(v => v.EntityExpirationGuid == id) .Include(x => x.Entity) .Include(x => x.EntityMainPoint) .Include(c => c.EntityMainPoint.EusMainPoint) .Include(c => c.EntityMainPoint.EusMainPoint.Organization) .Include(x => x.EntityMainPoint.Lts) .Include(x => x.EntityMainPoint.Lts.Select(c => c.RnTaps)) .FirstOrDefaultAsync(); var MainPoint = EntityExpiration?.EntityMainPoint?.EusMainPoint; if (MainPoint == null) { return(null); } var model = new EntitySalesDataAccessModel { Id = MainPoint.Id, MainPointId = MainPoint.MainPointId, Address = MainPoint.Address, EntityAgent = MainPoint.Organization == null ? null : new EntityAgentDataAccessModel() { Id = MainPoint.Organization.PartnerGuid, Code = MainPoint.Organization.Code, Name = MainPoint.Organization.Name }, ActiveEntity = new List <EntityEntityDataAccessModel>() { new EntityEntityDataAccessModel { Id = EntityExpiration.EntityExpirationGuid, IsTest = EntityExpiration.EntityMainPoint.IsTest, Number = EntityExpiration.Entity.Number, SysType = EntityExpiration.EntityMainPoint.Sys.ToEntitySys(), ValidFrom = EntityExpiration.ValidFrom ?? DateTime.MinValue, ValidTo = EntityExpiration.ValidTo ?? DateTime.MaxValue, Places = EntityExpiration.EntityMainPoint.Sys == SysType.ElioET || EntityExpiration.EntityMainPoint.Sys == SysType.EusET || EntityExpiration.EntityMainPoint.Sys == SysType.SabreET ? EntityExpiration.EntityMainPoint.Lts?.Select(p => new EntityPlaceDataAccessModel { Id = p.LtGuid, AuthorizationDate = p.AutorizeDate, Pcc = p.PlaceId }) : Array.Empty <EntityPlaceDataAccessModel>(), RnEntity = EntityExpiration.EntityMainPoint.Sys == SysType.Rn ? EntityExpiration.EntityMainPoint.Lts .Where(x => x.LtSystem == LtSystems.Rn && x.RnStatus) .Select(Lt => new RnEntityDataAccessModel { Grp = Lt.GRP, Agn = Lt.AGN, RnTerminals = Lt.EntityMainPoint.Lts.Where(x => x.LtSystem == LtSystems.Rn && x.RnStatus) .Select(si => new RnTerminalDataAccessModel { Id = si.LtGuid, TerminalNumber = si.RnTaps.FirstOrDefault().Offc, AuthorizationDate = si.AutorizeDate }).ToList() }) .FirstOrDefault() : null } } }; return(new EntitySales(model)); }
public async Task <EntitySales> GetByIdWithEntityActiveOnDate(Guid id, DateTime date) { var MainPoint = await _context.EusMainPoint.FirstOrDefaultAsync(s => s.Id == id); if (MainPoint == null) { return(null); } var activeEntity = await _context.EntityExpiration .Where(v => v.EntityMainPoint.EusMainPointGuid == id) .Where(v => v.ValidFrom <= date.Date && date.Date <= v.ValidTo && v.IsActive) .Include(x => x.Entity) .Include(x => x.EntityMainPoint) .Include(x => x.EntityMainPoint.EusMainPoint) .Include(x => x.EntityMainPoint.EusMainPoint.Organization) .Include(x => x.EntityMainPoint.Lts) .ToListAsync(); var model = new EntitySalesDataAccessModel { DateForActiveEntity = date, Id = MainPoint.Id, MainPointId = MainPoint.MainPointId, Address = activeEntity.Select(v => v.EntityMainPoint.EusMainPoint.Address).FirstOrDefault(), EntityAgent = activeEntity.Select(v => new EntityAgentDataAccessModel { Id = v.EntityMainPoint.EusMainPoint.Organization.PartnerGuid, Code = v.EntityMainPoint.EusMainPoint.Organization.Code, Name = v.EntityMainPoint.EusMainPoint.Organization.Name }).FirstOrDefault(), ActiveEntity = activeEntity.Select(v => new EntityEntityDataAccessModel { Id = v.EntityExpirationGuid, Number = v.Entity.Number, SysType = v.EntityMainPoint.Sys.ToEntitySys(), ValidFrom = v.ValidFrom ?? DateTime.MinValue, ValidTo = v.ValidTo ?? DateTime.MaxValue, IsTest = v.EntityMainPoint.IsTest, Places = v.EntityMainPoint.Sys == SysType.ElioET || v.EntityMainPoint.Sys == SysType.EusET || v.EntityMainPoint.Sys == SysType.SabreET ? v.EntityMainPoint.Lts.Select(p => new EntityPlaceDataAccessModel { Id = p.LtGuid, AuthorizationDate = p.AutorizeDate, Pcc = p.PlaceId }) : Array.Empty <EntityPlaceDataAccessModel>(), RnEntity = v.EntityMainPoint.Sys == SysType.Rn ? v.EntityMainPoint.Lts .Where(x => x.LtSystem == LtSystems.Rn && x.RnStatus) .Select(Lt => new RnEntityDataAccessModel { Grp = Lt.GRP, Agn = Lt.AGN, RnTerminals = Lt.EntityMainPoint.Lts.Where(x => x.LtSystem == LtSystems.Rn && x.RnStatus) .Select(si => new RnTerminalDataAccessModel { Id = si.LtGuid, TerminalNumber = si.RnTaps.FirstOrDefault().Offc, AuthorizationDate = si.AutorizeDate }).ToList() }) .FirstOrDefault() : null, }).ToList() }; return(new EntitySales(model)); }