コード例 #1
0
        public override async Task <List <Company> > Execute(WarehauseStorageHotelLinenContext context)
        {
            if (!string.IsNullOrEmpty(Name) && !string.IsNullOrEmpty(TaxNumber))
            {
                var result = await context.Companies
                             .Where(x => x.Name == this.Name && x.TaxNumber == this.TaxNumber)
                             .Include(x => x.CompanyPriceLists)
                             .AsNoTracking()
                             .ToListAsync();

                if (result.Count == 0)
                {
                    return(null);
                }
                return(result);
            }
            else if (!string.IsNullOrEmpty(Name) && string.IsNullOrEmpty(TaxNumber))
            {
                var result = await context.Companies
                             .Where(x => x.Name == this.Name)
                             .Include(x => x.CompanyPriceLists)
                             .AsNoTracking()
                             .ToListAsync();

                if (result.Count == 0)
                {
                    return(null);
                }
                return(result);
            }
            else if (string.IsNullOrEmpty(Name) && !string.IsNullOrEmpty(TaxNumber))
            {
                var result = await context.Companies
                             .Where(x => x.TaxNumber == this.TaxNumber)
                             .Include(x => x.CompanyPriceLists)
                             .AsNoTracking()
                             .ToListAsync();

                //if (result.Count == 0)
                //    return null;

                // WTF PRzecież wszystko chodziło jak wyrzucam nulla to jest 404 i złe ja zracam pustą to hujnia bo laudnryId ma 0
                return(result);
            }
            else if (this.CompanyId != null && string.IsNullOrEmpty(Name) && string.IsNullOrEmpty(TaxNumber))
            {
                return(await context.Companies
                       .Where(x => x.Id == this.CompanyId)
                       .Include(x => x.CompanyPriceLists)
                       .AsNoTracking()
                       .ToListAsync());
            }
            else
            {
                return(await context.Companies
                       .Include(x => x.CompanyPriceLists)
                       .AsNoTracking()
                       .ToListAsync());
            }
        }
コード例 #2
0
        public override async Task<Company> Execute(WarehauseStorageHotelLinenContext context)
        {
            await context.Companies.AddAsync(this.Parameter);
            await context.SaveChangesAsync();
            return this.Parameter;

        }
コード例 #3
0
 public override async Task <Warehause> Execute(WarehauseStorageHotelLinenContext context)
 {
     return(await context.Warehauses.Where(x => x.Id == this.Id)
            .Include(x => x.WarehauseDetails)
            .AsNoTracking()
            .FirstOrDefaultAsync());
 }
コード例 #4
0
 public override async Task <LaundryServiceDetail> Execute(WarehauseStorageHotelLinenContext context)
 {
     return(await context.LaundryServiceDetails
            .Where(x => x.Id == this.Id)
            .AsNoTracking()
            .FirstOrDefaultAsync());
 }
コード例 #5
0
 public override async Task <Company> Execute(WarehauseStorageHotelLinenContext context)
 {
     return(await context.Companies
            .Include(x => x.CompanyPriceLists)
            .AsNoTracking()
            .FirstOrDefaultAsync(x => x.Id == this.Id));
 }
コード例 #6
0
 public override async Task <Invoice> Execute(WarehauseStorageHotelLinenContext context)
 {
     if (this.Id != null)
     {
         return(await context.Invoices.Where(x => x.Id == this.Id)
                .Include(x => x.LaundryServices)
                .Include(x => x.Company)
                .Include(x => x.Laundry)
                .AsNoTracking()
                .FirstOrDefaultAsync());
     }
     else if (!string.IsNullOrEmpty(this.Number))
     {
         return(await context.Invoices.Where(x => x.Number == this.Number)
                .Include(x => x.LaundryServices)
                .Include(x => x.Company)
                .Include(x => x.Laundry)
                .AsNoTracking()
                .FirstOrDefaultAsync());
     }
     else if (this.WouldLikeToCreate == true && this.CompanyId != null && this.LaundryId != null)
     {
         return(await context.Invoices
                .Where(y => y.CompanyId == this.CompanyId && y.LaundryId == this.LaundryId)
                .OrderByDescending(x => x.Id)
                .FirstOrDefaultAsync());
     }
     else
     {
         return(null);
     }
 }
コード例 #7
0
 public override async Task <LaundryService> Execute(WarehauseStorageHotelLinenContext context)
 {
     if (this.Id != null)
     {
         return(await context.LaundryServices
                .Where(x => x.Id == this.Id)
                .Include(x => x.Company)
                .Include(x => x.Laundry)
                .AsNoTracking()
                .FirstOrDefaultAsync());
     }
     else if (this.LaundryId != null && this.CompanyId != null && this.WouldLikeToCreate == true)
     {
         return(await context.LaundryServices
                .Where(x => x.CompanyId == this.CompanyId && x.LaundryId == this.LaundryId)
                .OrderByDescending(x => x.RecievedDate)
                .ThenByDescending(x => x.Id)
                .AsNoTracking()
                .FirstOrDefaultAsync());
     }
     else
     {
         return(null);
     }
 }
コード例 #8
0
 public override async Task <PriceListDetail> Execute(WarehauseStorageHotelLinenContext context)
 {
     return(await context.PriceListDetails
            .Where(x => x.Id == this.Id && x.PriceList.CompanyId == this.CompanyId)
            .AsNoTracking()
            .FirstOrDefaultAsync());
 }
コード例 #9
0
        public override async Task <WarehauseDetail> Execute(WarehauseStorageHotelLinenContext context)
        {
            await context.WarehauseDetails.AddAsync(this.Parameter);

            await context.SaveChangesAsync();

            return(this.Parameter);
        }
コード例 #10
0
        public override async Task <bool> Execute(WarehauseStorageHotelLinenContext context)
        {
            context.ChangeTracker.Clear();
            context.HotelLinens.Remove(this.Parameter);
            await context.SaveChangesAsync();

            return(true);
        }
コード例 #11
0
        public override async Task <Company> Execute(WarehauseStorageHotelLinenContext context)
        {
            context.ChangeTracker.Clear();
            context.Companies.Update(this.Parameter);
            await context.SaveChangesAsync();

            return(this.Parameter);
        }
コード例 #12
0
        public override async Task <LaundryServiceDetail> Execute(WarehauseStorageHotelLinenContext context)
        {
            context.ChangeTracker.Clear();
            context.LaundryServiceDetails.Update(this.Parameter);
            await context.SaveChangesAsync();

            return(this.Parameter);
        }
コード例 #13
0
        public override async Task <LaundryService> Execute(WarehauseStorageHotelLinenContext context)
        {
            await context.LaundryServices.AddAsync(this.Parameter);

            await context.SaveChangesAsync();

            return(this.Parameter);
        }
コード例 #14
0
        public override async Task <List <User> > Execute(WarehauseStorageHotelLinenContext context)
        {
            var result = await context.Users
                         .Where(x => x.CompanyId == this.CompanyId)
                         .AsNoTracking()
                         .ToListAsync();

            return(result);
        }
コード例 #15
0
        public override async Task <HotelLinen> Execute(WarehauseStorageHotelLinenContext context)
        {
            var result = await context.HotelLinens
                         .Include(x => x.Company)
                         .AsNoTracking()
                         .FirstOrDefaultAsync(x => x.Id == this.Id);

            return(result);
        }
コード例 #16
0
 public override async Task <RelatedCompany> Execute(WarehauseStorageHotelLinenContext context)
 {
     return(await context.RelatedCompanies
            .Where(x => x.Id == this.Id)
            .Include(x => x.Company)
            .Include(y => y.Laundry)
            .AsNoTracking()
            .FirstOrDefaultAsync());
 }
コード例 #17
0
        public override async Task <List <Warehause> > Execute(WarehauseStorageHotelLinenContext context)
        {
            if (this.WarehauseNumber != null && this.CompanyId != null && this.WarehauseType == null)
            {
                if (context.Warehauses.Any(x => x.WarehauseNumber == this.WarehauseNumber && x.CompanyId == this.CompanyId))
                {
                    return(await context.Warehauses.Where(x => x.WarehauseNumber == this.WarehauseNumber && x.CompanyId == this.CompanyId)
                           .Include(x => x.WarehauseDetails)
                           .AsNoTracking()
                           .ToListAsync());
                }
                return(null);
            }

            if (this.WarehauseNumber != null && this.CompanyId == null && this.WarehauseType == null)
            {
                if (context.Warehauses.Any(x => x.WarehauseNumber == this.WarehauseNumber))
                {
                    return(await context.Warehauses.Where(x => x.WarehauseNumber == this.WarehauseNumber)
                           .Include(x => x.WarehauseDetails)
                           .AsNoTracking()
                           .ToListAsync());
                }
                return(null);
            }

            if (this.WarehauseNumber == null && this.CompanyId != null && this.WarehauseType == null)
            {
                if (context.Warehauses.Any(x => x.CompanyId == this.CompanyId))
                {
                    return(await context.Warehauses.Where(x => x.CompanyId == this.CompanyId)
                           .Include(x => x.WarehauseDetails)
                           .AsNoTracking()
                           .ToListAsync());
                }
                return(null);
            }
            var result = await context.Warehauses
                         .Include(x => x.WarehauseDetails)
                         .AsNoTracking()
                         .ToListAsync();

            if (this.WarehauseType != null && this.CompanyId != null && this.WarehauseNumber == null)
            {
                return(await context.Warehauses
                       .Where(x => (byte)x.WarehauseType == this.WarehauseType && x.CompanyId == this.CompanyId)
                       .Include(x => x.WarehauseDetails)
                       .AsNoTracking()
                       .ToListAsync());
            }

            return(result);
        }
コード例 #18
0
        public override async Task <PriceList> Execute(WarehauseStorageHotelLinenContext context)
        {
            await context.PriceLists.AddAsync(this.Parameter);

            if (this.Parameter.Details.Count != 0)
            {
                await context.PriceListDetails.AddRangeAsync(this.Parameter.Details);
            }

            await context.SaveChangesAsync();

            return(this.Parameter);
        }
コード例 #19
0
        public override async Task <List <PriceList> > Execute(WarehauseStorageHotelLinenContext context)
        {
            var result = await context.PriceLists
                         .Where(x => x.CompanyId == this.CompanyId && x.LaundryId == this.LaundryId)
                         .OrderByDescending(x => x.CreationDate)
                         .Include(x => x.Company)
                         .Include(x => x.Laundry)
                         .Include(x => x.Details)
                         .AsNoTracking()
                         .ToListAsync();

            if (result.Count == 0)
            {
                return(null);
            }
            return(result);
        }
コード例 #20
0
        public override async Task <List <LaundryServiceDetail> > Execute(WarehauseStorageHotelLinenContext context)
        {
            if (this.LaundryServiceId != null && this.CompanyId != null)
            {
                return(await context.LaundryServiceDetails
                       .Where(x => x.LaundryServiceId == this.LaundryServiceId)
                       .Include(x => x.HotelLinen)
                       .AsNoTracking()
                       .ToListAsync());
            }
            else if (this.CompanyId != null && this.LaundryServiceId == null)
            {
                var result = await context.LaundryServiceDetails
                             .Join(context.LaundryServices, laundryDetails => laundryDetails.LaundryServiceId, laundryService => laundryService.Id
                                   , (laundryDetails, laundryService) => new
                {
                    LaundrServiceDetailId = laundryDetails.Id,
                    LaundryServiceId      = laundryService.Id,
                    CompanyId             = laundryService.CompanyId
                })
                             .AsNoTracking()
                             .ToListAsync();

                List <LaundryServiceDetail> returnList = new();
                var result2 = result.Where(x => x.CompanyId == this.CompanyId).Select(x => x.LaundrServiceDetailId).Distinct().ToList();
                for (int i = 0; i < result2.Count; i++)
                {
                    var item = await context.LaundryServiceDetails
                               .Where(x => x.Id == result2[i])
                               .AsNoTracking()
                               .ToListAsync();

                    if (item != null)
                    {
                        returnList.AddRange(item);
                    }
                }
                return(returnList);
            }

            else
            {
                return(null);
            }
        }
コード例 #21
0
        public override async Task <List <LaundryService> > Execute(WarehauseStorageHotelLinenContext context)
        {
            if (!string.IsNullOrEmpty(this.Number))
            {
                return(await context.LaundryServices
                       .Where(x => x.Number == this.Number)
                       .Include(x => x.Company)
                       .Include(x => x.Laundry)
                       .Include(x => x.LaundryServiceDetails)
                       .AsNoTracking()
                       .ToListAsync());
            }

            if (UserRole == "UserLaundry")
            {
                return(await context.LaundryServices
                       .Where(x => x.LaundryId == this.CompanyId)
                       .OrderByDescending(x => x.RecievedDate)
                       .ThenByDescending(x => x.Id)
                       .Include(x => x.Company)
                       .Include(x => x.Laundry)
                       .Include(x => x.LaundryServiceDetails)
                       .AsNoTracking()
                       .ToListAsync());
            }
            else if (UserRole == "UserHotel" || UserRole == "AdminHotel")
            {
                return(await context.LaundryServices
                       .Where(x => x.CompanyId == this.CompanyId)
                       .OrderByDescending(x => x.RecievedDate)
                       .ThenByDescending(x => x.Id)
                       .Include(x => x.Company)
                       .Include(x => x.Laundry)
                       .Include(x => x.LaundryServiceDetails)
                       .AsNoTracking()
                       .ToListAsync());
            }

            else
            {
                return(null);
            }
        }
コード例 #22
0
 public override async Task <List <Invoice> > Execute(WarehauseStorageHotelLinenContext context)
 {
     if (UserRole == "UserLaundry")
     {
         return(await context.Invoices.Where(y => y.LaundryId == this.CompanyId)
                .Include(x => x.LaundryServices)
                .Include(x => x.Company)
                .Include(x => x.Laundry)
                .AsNoTracking()
                .ToListAsync());
     }
     else
     {
         return(await context.Invoices.Where(y => y.CompanyId == this.CompanyId)
                .Include(x => x.LaundryServices)
                .Include(x => x.Company)
                .Include(x => x.Laundry)
                .AsNoTracking()
                .ToListAsync());
     }
 }
コード例 #23
0
        public override async Task <User> Execute(WarehauseStorageHotelLinenContext context)
        {
            if (!string.IsNullOrEmpty(this.FirstName) &&
                !string.IsNullOrEmpty(this.LastName) &&
                !string.IsNullOrEmpty(this.Email) &&
                this.CompanyId != null)
            {
                return(await context.Users
                       .Include(x => x.Company)
                       .AsNoTracking()
                       .FirstOrDefaultAsync(x => x.FirstName == this.FirstName &&
                                            x.LastName == this.LastName &&
                                            x.Email == this.Email &&
                                            x.CompanyId == this.CompanyId));
            }
            if (!string.IsNullOrEmpty(this.Username))
            {
                return(await context.Users
                       .Include(x => x.Company)
                       .AsNoTracking()
                       .FirstOrDefaultAsync(x => x.Username == this.Username));
            }

            if (this.Id != null)
            {
                return(await context.Users.FirstOrDefaultAsync(x => x.Id == this.Id));
            }

            if (!string.IsNullOrEmpty(this.Username))
            {
                return(await context.Users
                       .Include(x => x.Company)
                       .AsNoTracking()
                       .FirstOrDefaultAsync(x => x.Username == this.Username));
            }
            return(null);
        }
コード例 #24
0
        public override async Task <List <RelatedCompany> > Execute(WarehauseStorageHotelLinenContext context)
        {
            if (this.CompanyId != null && this.LaundryId != null)
            {
                var result = await context.RelatedCompanies
                             .Where(x => x.CompanyId == this.CompanyId && x.LaundryId == this.LaundryId)
                             .Include(x => x.Company)
                             .Include(y => y.Laundry)
                             .AsNoTracking()
                             .ToListAsync();

                if (result.Count == 0)
                {
                    return(null);
                }
                return(result);
            }
            else if (this.CompanyId != null && this.LaundryId == null)
            {
                return(await context.RelatedCompanies
                       .Where(x => x.CompanyId == this.CompanyId)
                       .Include(x => x.Company)
                       .Include(y => y.Laundry)
                       .AsNoTracking()
                       .ToListAsync());
            }
            else if (this.CompanyId == null && this.LaundryId != null)
            {
                return(await context.RelatedCompanies
                       .Where(x => x.LaundryId == this.LaundryId)
                       .Include(x => x.Company)
                       .Include(y => y.Laundry)
                       .AsNoTracking()
                       .ToListAsync());
            }
            return(null);
        }
コード例 #25
0
 public override async Task <List <PriceListDetail> > Execute(WarehauseStorageHotelLinenContext context)
 {
     if (this.PriceListId != null)
     {
         return(await context.PriceListDetails
                .Where(x => x.PriceListId == this.PriceListId)
                .AsNoTracking()
                .ToListAsync());
     }
     else if (this.PriceListId == null && this.CompanyId != null && this.LinenType != null)
     {
         return(await context.PriceListDetails
                .Where(x => x.LinenType == this.LinenType && CompanyId == this.CompanyId)
                .AsNoTracking()
                .ToListAsync());
     }
     else
     {
         return(await context.PriceListDetails
                .Where(x => x.PriceList.CompanyId == this.CompanyId)
                .AsNoTracking()
                .ToListAsync());
     }
 }
コード例 #26
0
 public CommandExecutor(WarehauseStorageHotelLinenContext context)
 {
     this.context = context;
 }
コード例 #27
0
        public override async Task <List <HotelLinen> > Execute(WarehauseStorageHotelLinenContext context)
        {
            if (!string.IsNullOrEmpty(this.Size) &&
                !string.IsNullOrEmpty(this.Color) &&
                !string.IsNullOrEmpty(this.Description) &&
                this.LinenType != null &&
                this.Weight != null)
            {
                if (context.HotelLinens.Any(x => x.Description == this.Description &&
                                            x.TypeName == this.LinenType &&
                                            x.Weight == this.Weight &&
                                            x.Size == this.Size &&
                                            x.Color == this.Color))
                {
                    return(await context.HotelLinens
                           .Where(x => x.Description == this.Description)
                           .Include(x => x.Company)
                           .AsNoTracking()
                           .ToListAsync());
                }
                return(null);
            }


            if (this.CompanyId != null && this.WarehauseId == null)
            {
                return(await context.HotelLinens
                       .Where(x => x.Company.Id == this.CompanyId)
                       .Include(x => x.Company)
                       .AsNoTracking()
                       .ToListAsync());
            }
            if (this.CompanyId != null && this.WarehauseId != null)
            {
                var result = await context.WarehauseDetails.Join(context.HotelLinens, warehausedetail => warehausedetail.HotelLinenId, hotellinen => hotellinen.Id,
                                                                 (warehausedetail, hotellinen) => new
                {
                    Id             = hotellinen.Id,
                    WarehauseId    = warehausedetail.WarehauseId,
                    HotelLinenName = hotellinen.Description
                }).ToListAsync();

                List <HotelLinen> returnList = new();
                var result2 = result.Where(x => x.WarehauseId == this.WarehauseId).Select(x => x.Id).Distinct().ToList();
                for (int i = 0; i < result2.Count; i++)
                {
                    var item = await context.HotelLinens
                               .Where(x => x.Id == result2[i])
                               .Include(x => x.Company)
                               .AsNoTracking()
                               .ToListAsync();

                    if (item != null)
                    {
                        returnList.AddRange(item);
                    }
                }
                return(returnList);
            }
            else
            {
                return(await context.HotelLinens
                       .Include(x => x.Company)
                       .AsNoTracking()
                       .ToListAsync());
            }
        }
コード例 #28
0
        public override async Task <List <WarehauseDetail> > Execute(WarehauseStorageHotelLinenContext context)
        {
            if (this.WarehauseId != null && this.HotelLinenId != null)
            {
                var result = await context.WarehauseDetails
                             .Where(x => x.HotelLinenId == this.HotelLinenId && x.WarehauseId == this.WarehauseId)
                             .Include(x => x.HotelLinen)
                             .AsNoTracking()
                             .ToListAsync();

                if (result.Count == 0)
                {
                    return(null);
                }
                return(result);
            }
            else if (this.WarehauseId != null && this.HotelLinenId == null)
            {
                var result = await context.WarehauseDetails
                             .Where(x => x.WarehauseId == this.WarehauseId)
                             .Include(x => x.HotelLinen)
                             .AsNoTracking()
                             .ToListAsync();

                if (result.Count == 0)
                {
                    return(null);
                }
                return(result);
            }
            else if (this.WarehauseId == null && this.HotelLinenId != null)
            {
                var result = await context.WarehauseDetails
                             .Where(x => x.HotelLinenId == this.HotelLinenId)
                             .Include(x => x.HotelLinen)
                             .AsNoTracking()
                             .ToListAsync();

                if (result.Count == 0)
                {
                    return(null);
                }
                return(result);
            }
            else if (this.CompanyId != null)
            {
                var result = await context.WarehauseDetails
                             .Join(context.Warehauses, warerhauseDet => warerhauseDet.WarehauseId, warehause => warehause.Id, (warehauseDet, warehause)
                                   => new
                {
                    DetailId  = warehauseDet.Id,
                    CompanyId = warehause.CompanyId
                })
                             .AsNoTracking()
                             .ToListAsync();

                List <WarehauseDetail> returnList = new();
                var result2 = result.Where(x => x.CompanyId == this.CompanyId).Select(x => x.DetailId).Distinct().ToList();
                for (int i = 0; i < result2.Count; i++)
                {
                    var item = await context.WarehauseDetails
                               .Where(x => x.Id == result2[i])
                               .Include(x => x.HotelLinen)
                               .AsNoTracking()
                               .ToListAsync();

                    if (item != null)
                    {
                        returnList.AddRange(item);
                    }
                }
                return(returnList);
            }
            else
            {
                return(null);
            }
        }
コード例 #29
0
 public QueryExecutor(WarehauseStorageHotelLinenContext context)
 {
     this.context = context;
 }
コード例 #30
0
 public abstract Task <TResult> Execute(WarehauseStorageHotelLinenContext context);