예제 #1
0
        public async Task <IList <TariffDTO> > GetAllMyTariffs(Guid ownerId)
        {
            using (MUEContext db = new MUEContext())
            {
                var typeOfServices = await typeOfServiceService.GetTypeOfServices();

                //var tariffs = await db.Tariffs.Where(t => t.FlatId == FlatId).ToListAsync();
                var myflatIds = await db.Flats.Where(f => f.OwnersId == ownerId).Select(f => f.FlatId).ToListAsync();

                var tariffs = await db.Tariffs.Where(t => myflatIds.Contains(t.FlatId)).ToListAsync();

                var flat = await buildingService.GetFlats();

                return(tariffs.Select(t => new TariffDTO
                {
                    FlatId = t.FlatId,
                    TariffId = t.TariffId,
                    Value = t.Value,
                    Flat = flat.Where(f => f.FlatId == t.FlatId).Select(f => f.Address).FirstOrDefault(),
                    TypeOfServiceId = t.TypeOfServiceId,
                    TypeOfService = typeOfServices.Where(typeofservice => typeofservice.TypeOfServiceId == t.TypeOfServiceId).Select(typeofservice => typeofservice.Name).FirstOrDefault(),
                    UnitOfMeasurment = typeOfServices.Where(typeofservice => typeofservice.TypeOfServiceId == t.TypeOfServiceId).Select(typeofservice => typeofservice.UnitOfMeasurment).FirstOrDefault(),
                    IsMeter = typeOfServices.Where(typeofservice => typeofservice.TypeOfServiceId == t.TypeOfServiceId).Select(typeofservice => typeofservice.IsMeter).FirstOrDefault()
                }).ToList());
            }
        }
예제 #2
0
        public async Task <IEnumerable <ServiceBillDTO> > GetAll(FlatDTO dto, PeriodDTO periodDTO)
        {
            var flats = await buildingService.GetFlats();

            var periods = await periodService.GetPeriods();

            var typeofservices = await typeOfServiceService.GetTypeOfServices();

            using (MUEContext db = new MUEContext())
            {
                var servicebills = await db.ServiceBills.Where(s => s.FlatId == dto.FlatId && s.PeriodId == periodDTO.PeriodId).ToListAsync();

                return(servicebills.Select(s => new ServiceBillDTO
                {
                    FlatId = s.FlatId,
                    PeriodId = s.PeriodId,
                    ServiceBillId = s.ServiceBillId,
                    TypeOfServiceId = s.TypeOfServiceId,
                    Summ = s.Summ,
                    Status = s.Status,
                    Period = periods.Where(p => p.PeriodId == s.PeriodId).Select(p => p.Name).FirstOrDefault(),
                    Flat = flats.Where(f => f.FlatId == s.FlatId).Select(f => f.Address).FirstOrDefault(),
                    TypeOfService = typeofservices.Where(t => t.TypeOfServiceId == s.TypeOfServiceId).Select(t => t.Name).FirstOrDefault()
                }).ToList());
            }
        }
예제 #3
0
 private async Task <Period> GetPeriodEntity(Guid id)
 {
     using (MUEContext db = new MUEContext())
     {
         return(await db.Periods.Where(p => p.PeriodId == id).FirstOrDefaultAsync());
     }
 }
예제 #4
0
        public async Task <IList <FlatDTO> > GetFlats(Guid ownerId)
        {
            var owners = await ownerService.GetOwners();

            var buildings = await GetBuildings();

            using (MUEContext db = new MUEContext())
            {
                var flats = await db.Flats.ToListAsync();

                return(flats.Where(f => f.OwnersId == ownerId).Select(f => new FlatDTO
                {
                    Square = f.Square,
                    Rooms = f.Rooms,
                    Number = f.Number,
                    BuildingId = f.BuildingId,
                    OwnersId = f.OwnersId,
                    FlatId = f.FlatId,
                    OwnersFullName = f.OwnersId.HasValue ? owners.Where(o => o.OwnerId == f.OwnersId).Select(o => o.FirstName + o.LastName + o.MiddlleName).FirstOrDefault() : "",
                    CountResidents = f.CountResidents,
                    Address = string.Format("Улица: {0} Дом: {1} Квартира: {2}",
                                            buildings.Where(b => b.BuildingId == f.BuildingId).FirstOrDefault().StreetName,
                                            buildings.Where(b => b.BuildingId == f.BuildingId).FirstOrDefault().Number.ToString(),
                                            f.Number.ToString())
                }).ToList());
            }
        }
예제 #5
0
        public async Task <ServiceBillDTO> GetDTO(Guid id)
        {
            var flats = await buildingService.GetFlats();

            var periods = await periodService.GetPeriods();

            var typeofservices = await typeOfServiceService.GetTypeOfServices();

            using (MUEContext db = new MUEContext())
            {
                var servicebill = await db.ServiceBills.Where(s => s.ServiceBillId == id).FirstOrDefaultAsync();

                return(new ServiceBillDTO {
                    FlatId = servicebill.FlatId,
                    PeriodId = servicebill.PeriodId,
                    ServiceBillId = servicebill.ServiceBillId,
                    TypeOfServiceId = servicebill.TypeOfServiceId,
                    Summ = servicebill.Summ,
                    Status = servicebill.Status,
                    Period = periods.Where(p => p.PeriodId == servicebill.PeriodId).Select(p => p.Name).FirstOrDefault(),
                    Flat = flats.Where(f => f.FlatId == servicebill.FlatId).Select(f => f.Address).FirstOrDefault(),
                    TypeOfService = typeofservices.Where(t => t.TypeOfServiceId == servicebill.TypeOfServiceId).Select(t => t.Name).FirstOrDefault()
                });
            }
        }
예제 #6
0
 private async Task <Building> GetBuildingEntity(Guid id)
 {
     using (MUEContext db = new MUEContext())
     {
         return(await db.Buildings.Where(b => b.BuildingId == id).FirstOrDefaultAsync());
     }
 }
예제 #7
0
 public async Task <IList <string> > GetBuildingNames()
 {
     using (MUEContext db = new MUEContext())
     {
         return(await db.Buildings.Select(b => b.Number).Distinct().ToListAsync());
     }
 }
예제 #8
0
 public async Task <Guid> GetUserId(string login)
 {
     using (MUEContext db = new MUEContext())
     {
         return(await db.Users.Where(u => u.Login == login).Select(u => u.UserId).FirstOrDefaultAsync());
     }
 }
예제 #9
0
 private async Task <Role> GetRole(string Name)
 {
     using (MUEContext db = new MUEContext())
     {
         return(await db.Roles.Where(r => r.Name == Name).FirstOrDefaultAsync());
     }
 }
예제 #10
0
 private async Task <MeterReading> GetEntity(Guid id)
 {
     using (MUEContext db = new MUEContext())
     {
         return(await db.MeterReadings.Where(mr => mr.MeterReadingId == id).FirstOrDefaultAsync());
     }
 }
예제 #11
0
 private async Task <MeterReading> GetEntity(Guid FlatId, Guid PeriodId, Guid TypeofServiceId)
 {
     using (MUEContext db = new MUEContext())
     {
         return(await db.MeterReadings.Where(mr => mr.FlatId == FlatId && mr.PeriodId == PeriodId && mr.TypeofServiceId == TypeofServiceId).FirstOrDefaultAsync());
     }
 }
예제 #12
0
        public async Task <IEnumerable <MeterReadingDTO> > GetForPeriod(Guid PeriodId)
        {
            var typeofservices = await typeOfServiceService.GetTypeOfServices();

            var flats = await buildingService.GetFlats();

            var period = await periodService.GetPeriodDTO(PeriodId);

            using (MUEContext db = new MUEContext())
            {
                var mrs = await db.MeterReadings.ToListAsync();

                return(mrs.Where(mr => mr.PeriodId == period.PeriodId).Select(mr => new MeterReadingDTO
                {
                    FlatId = mr.FlatId,
                    MeterReadingId = mr.MeterReadingId,
                    PeriodId = mr.PeriodId,
                    TypeofServiceId = mr.TypeofServiceId,
                    CodePeriod = period.Name,
                    Flat = flats.Where(f => f.FlatId == mr.FlatId).Select(f => f.Address).FirstOrDefault(),
                    Value = mr.Value,
                    TypeOfService = typeofservices.Where(t => t.TypeOfServiceId == mr.TypeofServiceId).Select(t => t.Name).FirstOrDefault()
                }).ToList());
            }
        }
예제 #13
0
        public async Task Create(MeterReadingDTO dto)
        {
            //var flats = await buildingService.GetFlatDTO(dto.FlatId);
            //var period = await periodService.GetPeriodDTO(dto.PeriodId);
            Guid id = Guid.NewGuid();

            using (MUEContext db = new MUEContext())
            {
                var mr = await GetEntity(dto.FlatId, dto.PeriodId, dto.TypeofServiceId);

                if (mr != null)
                {
                    await Delete(mr.MeterReadingId);
                }
                MeterReading meterReading = new MeterReading {
                    FlatId          = dto.FlatId,
                    MeterReadingId  = id,
                    PeriodId        = dto.PeriodId,
                    TypeofServiceId = dto.TypeofServiceId,
                    Value           = dto.Value,
                };
                db.MeterReadings.Add(meterReading);
                await db.SaveChangesAsync();
            }
        }
예제 #14
0
 private async Task <Tariff> GetTariffEntity(Guid id)
 {
     using (MUEContext db = new MUEContext())
     {
         return(await db.Tariffs.Where(t => t.TariffId == id).FirstOrDefaultAsync());
     }
 }
예제 #15
0
 private async Task <Street> GetStreetEntity(Guid id)
 {
     using (MUEContext db = new MUEContext())
     {
         return(await db.Streets.Where(s => s.StreetId == id).FirstOrDefaultAsync());
     }
 }
예제 #16
0
        public async Task <bool> CreateOwner(CreateOwnerDTO dto)
        {
            if (await LoginExist(dto.Login))
            {
                return(false);
            }
            Guid id        = Guid.NewGuid();
            Role ownerrole = await GetRole("Owner");

            var ownerId = await ownerService.Create(new OwnerDTO
            {
                FirstName   = dto.FirstName,
                LastName    = dto.LastName,
                MiddlleName = dto.MiddlleName,
                Status      = dto.Status,
            });

            using (MUEContext db = new MUEContext())
            {
                User user = new User
                {
                    Login        = dto.Login,
                    UserId       = id,
                    RoleId       = ownerrole.RoleId,
                    HashPassword = HashPassword(dto.Password),
                    OwnerId      = ownerId
                };
                db.Users.Add(user);
                await db.SaveChangesAsync();
            }
            return(true);
        }
예제 #17
0
 public async Task <IList <string> > GetStreetNames()
 {
     using (MUEContext db = new MUEContext())
     {
         return(await db.Streets.Select(s => s.Name).ToListAsync());
     }
 }
예제 #18
0
 public async Task <Guid> GetOwnerId(Guid id)
 {
     using (MUEContext db = new MUEContext())
     {
         return(await db.Users.Where(u => u.UserId == id).Select(u => u.OwnerId.HasValue? u.OwnerId.Value : Guid.Empty).FirstOrDefaultAsync());
     }
 }
예제 #19
0
 private async Task <Building> GetBuildingEntity(string NumberBuilding, Guid streetId)
 {
     using (MUEContext db = new MUEContext())
     {
         return(await db.Buildings.Where(b => b.StreetId == streetId && b.Number == NumberBuilding).FirstOrDefaultAsync());
     }
 }
예제 #20
0
 private async Task <ServiceBill> GetEntity(Guid id)
 {
     using (MUEContext db = new MUEContext())
     {
         return(await db.ServiceBills.Where(sb => sb.ServiceBillId == id).FirstOrDefaultAsync());
     }
 }
예제 #21
0
 private async Task <Flat> GetFlatEntity(Guid id)
 {
     using (MUEContext db = new MUEContext())
     {
         return(await db.Flats.Where(f => f.FlatId == id).FirstOrDefaultAsync());
     }
 }
예제 #22
0
 private async Task <Street> GetStreetEntity(string Name)
 {
     using (MUEContext db = new MUEContext())
     {
         return(await db.Streets.Where(s => s.Name == Name).FirstOrDefaultAsync());
     }
 }
예제 #23
0
 public async Task <IList <TypeOfServiceDTO> > GetTypeOfServices(bool isMeter = false)
 {
     using (MUEContext db = new MUEContext())
     {
         if (isMeter)
         {
             return(await db.TypeOfServices.Where(t => t.IsMeter == true).Select(t => new TypeOfServiceDTO
             {
                 Description = t.Description,
                 IsMeter = t.IsMeter,
                 Name = t.Name,
                 TypeOfServiceId = t.TypeOfServiceId,
                 UnitOfMeasurment = t.UnitOfMeasurment
             }).ToListAsync());
         }
         return(await db.TypeOfServices.Select(t => new TypeOfServiceDTO
         {
             Description = t.Description,
             IsMeter = t.IsMeter,
             Name = t.Name,
             TypeOfServiceId = t.TypeOfServiceId,
             UnitOfMeasurment = t.UnitOfMeasurment
         }).ToListAsync());
     }
 }
예제 #24
0
 private async Task <TypeOfService> GetTypeOfServiceEntity(Guid id)
 {
     using (MUEContext db = new MUEContext())
     {
         return(await db.TypeOfServices.Where(t => t.TypeOfServiceId == id).FirstOrDefaultAsync());
     }
 }
        public async Task <IEnumerable <SettlementSheetDTO> > GetAll(OwnerDTO OwnerDTO)
        {
            var flats = await buildingService.GetFlats(OwnerDTO.OwnerId);

            var periods = await periodService.GetPeriods();

            using (MUEContext db = new MUEContext())
            {
                var ss = await db.SettlementSheets.ToListAsync();

                ss = ss.Where(sse => flats.Select(f => f.FlatId).ToList().Contains(sse.FlatId)).ToList();

                return(ss.Select(ssd => new SettlementSheetDTO
                {
                    AmmountToBePaid = ssd.AmmountToBePaid,
                    Description = ssd.Description,
                    FlatId = ssd.FlatId,
                    PeriodId = ssd.PeriodId,
                    SettlementSheetId = ssd.SettlementSheetId,
                    Status = ssd.Status,
                    Flat = flats.Where(f => ssd.FlatId == f.FlatId).Select(f => f.Address).FirstOrDefault(),
                    Period = periods.Where(p => ssd.PeriodId == p.PeriodId).Select(p => p.Name).FirstOrDefault()
                }).ToList());
            }
        }
예제 #26
0
 private async Task <Owner> GetEntity(Guid id)
 {
     using (MUEContext db = new MUEContext())
     {
         return(await db.Owners.Where(o => o.OwnerId == id).FirstOrDefaultAsync());
     }
 }
예제 #27
0
        public async Task CreateFlat(CreateFlatDTO dto)
        {
            Guid     id       = Guid.NewGuid();
            var      streetId = (await GetStreetEntity(dto.Street)).StreetId;
            Building building = await GetBuildingEntity(dto.Building, streetId);

            if (building == null)
            {
                await CreateBuilding(new BuildingDTO { Number = dto.Building }, streetId);
            }
            building = await GetBuildingEntity(dto.Building, streetId);

            var DontCreate = await Exist(building.BuildingId, dto.Number);

            if (DontCreate != Guid.Empty)
            {
                return;
            }
            using (MUEContext db = new MUEContext())
            {
                Flat flat = new Flat {
                    Square         = dto.Square,
                    Rooms          = dto.Rooms,
                    CountResidents = dto.CountResidents,
                    FlatId         = id,
                    Number         = dto.Number,
                    BuildingId     = building.BuildingId
                };
                db.Flats.Add(flat);
                await db.SaveChangesAsync();
            }
        }
예제 #28
0
        public async Task DeleteTypeOfService(Guid id)
        {
            using (MUEContext db = new MUEContext())
            {
                TypeOfService typeOfService = await GetTypeOfServiceEntity(id);

                db.Entry(typeOfService).State = EntityState.Deleted;
                db.TypeOfServices.Remove(typeOfService);
                await db.SaveChangesAsync();
            }
        }
예제 #29
0
        public async Task Delete(Guid id)
        {
            using (MUEContext db = new MUEContext())
            {
                Owner owner = await GetEntity(id);

                db.Entry(owner).State = EntityState.Deleted;
                db.Owners.Remove(owner);
                await db.SaveChangesAsync();
            }
        }
예제 #30
0
        public async Task DeleteFlat(Guid id)
        {
            using (MUEContext db = new MUEContext())
            {
                Flat flat = await GetFlatEntity(id);

                db.Entry(flat).State = EntityState.Deleted;
                db.Flats.Remove(flat);
                await db.SaveChangesAsync();
            }
        }