Пример #1
0
        public async Task <Flat> CreateEmptyMediaForUser(AddEmptyMediaRequest userRequest)
        {
            var flat = await _context.Flats.Include(p => p.MediaHistory).FirstOrDefaultAsync(p => p.Id == userRequest.FlatId);

            var startDate = GenerateStartDateFromCurrentDate(userRequest.Period);
            var endDate   = GenerateEndDateFromCurrentDate(userRequest.Period);

            var coldWaterLastValue = 0.0;
            var hotWaterLastValue  = 0.0;
            var heatingLastValue   = 0.0;

            if (flat.MediaHistory?.Count() > 0)
            {
                coldWaterLastValue = flat.MediaHistory.Where(p => p.MediaType == MediaEnum.ColdWater).OrderByDescending(p => p.EndPeriodDate).First().CurrentValue;
                hotWaterLastValue  = flat.MediaHistory.Where(p => p.MediaType == MediaEnum.HotWater).OrderByDescending(p => p.EndPeriodDate).First().CurrentValue;
                heatingLastValue   = flat.MediaHistory.Where(p => p.MediaType == MediaEnum.Heat).OrderByDescending(p => p.EndPeriodDate).First().CurrentValue;
            }

            if (!flat.MediaHistory.Select(p => p.EndPeriodDate).Any(p => p >= startDate && p <= endDate))
            {
                AddMediaTemplate(flat, startDate, endDate, coldWaterLastValue, MediaEnum.ColdWater);
                AddMediaTemplate(flat, startDate, endDate, hotWaterLastValue, MediaEnum.HotWater);
                AddMediaTemplate(flat, startDate, endDate, heatingLastValue, MediaEnum.Heat);
                _context.SaveChanges();
                return(flat);
            }
            else
            {
                return(null);
            }
        }
Пример #2
0
        public async Task <IActionResult> AddEmptyMediaEntryForUser(AddEmptyMediaRequest addMediaToDbRequest)
        {
            var user = await _userRepository.GetUserById(addMediaToDbRequest.AdministratorId);

            var flat = await _repo.CreateEmptyMediaForUser(addMediaToDbRequest);

            if (flat == null)
            {
                return(BadRequest());
            }

            var messageSubject = "Wygenerowano nowe formularze do zgłoszenia zużycia mediów";
            var messageContent = $"Użytkownik {user.FirstName} {user.LastName} wygenerował nowe formularze do zgłoszenia zuzycia mediów: \n\n" +
                                 $"-Formularz zużycia wody ciepłej \n" +
                                 $"-Formularz zużycia wody zimnej \n" +
                                 $"-Formularz zużycia energii na ogrzewanie \n\n" +
                                 $"W razie zastrzeżeń skontaktuj się z pracownikiem administracji. \n\n" +
                                 $"Treść maila wygenerowano automatycznie. Nie odpowiadaj na tego maila.";

            _mailService.SendMail(messageSubject, messageContent, "", "Home Community App");

            return(Ok(flat));
        }