public async Task <IActionResult> PutReservation([FromRoute] int id, [FromBody] Reservation reservation)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != reservation.Id)
            {
                return(BadRequest());
            }

            var context = new ServicesDbContext();

            context.Entry(reservation).State = EntityState.Modified;

            try
            {
                await context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ReservationExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <IActionResult> PutSubService([FromRoute] int id, [FromBody] SubService subservice)
        {
            var _context = new ServicesDbContext();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != subservice.Id)
            {
                return(BadRequest());
            }

            _context.Entry(subservice).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SubServiceExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Example #3
0
 public static void Main(string[] args)
 {
     using (var context = new ServicesDbContext())
     {
         context.Database.Migrate();
     }
     CreateWebHostBuilder(args).Build().Run();
 }
Example #4
0
        public IEnumerable <Service> MyServices()
        {
            var context = new ServicesDbContext();

            var userId = User.Claims.First(x => x.Type == "UserID").Value;

            return(context.Service.Where(x => x.FkUserId == userId).ToList());
        }
Example #5
0
        private bool AddToDb(int id, IRestResponse response, double mseconds)
        {
            //todo использую три таблицы с одинаковыми данными, своего рода шардинг предполагала,
            //можно было бы сделать одну таблицу, тогда код уменьшился бы в три раза
            try
            {
                using (ServicesDbContext dbContext = new ServicesDbContext())
                {
                    if (id == 0)
                    {
                        Refdata refdata = new Refdata()
                        {
                            CreatedDate      = DateTime.UtcNow,
                            IsAvailable      = response.IsSuccessful,
                            ResponseDuration = mseconds,
                            LastHourErrors   = dbContext.Refdatas.Count(r => r.CreatedDate > DateTime.UtcNow.AddMinutes(-60) && r.IsAvailable == false),
                            LastDayErrors    = dbContext.Refdatas.Count(r => r.CreatedDate > DateTime.UtcNow.AddDays(-1) && r.IsAvailable == false)
                        };

                        dbContext.Refdatas.Add(refdata);
                        dbContext.SaveChanges();
                    }
                    else if (id == 1)
                    {
                        Ibonus ibonus = new Ibonus()
                        {
                            CreatedDate      = DateTime.UtcNow,
                            IsAvailable      = response.IsSuccessful,
                            ResponseDuration = mseconds,
                            LastHourErrors   = dbContext.Ibonuses.Count(r => r.CreatedDate > DateTime.UtcNow.AddMinutes(-60) && r.IsAvailable == false),
                            LastDayErrors    = dbContext.Ibonuses.Count(r => r.CreatedDate > DateTime.UtcNow.AddDays(-1) && r.IsAvailable == false)
                        };
                        dbContext.Ibonuses.Add(ibonus);
                        dbContext.SaveChanges();
                    }
                    else
                    {
                        Catalog catalog = new Catalog()
                        {
                            CreatedDate      = DateTime.UtcNow,
                            IsAvailable      = response.IsSuccessful,
                            ResponseDuration = mseconds,
                            LastHourErrors   = dbContext.Catalogs.Count(r => r.CreatedDate > DateTime.UtcNow.AddMinutes(-60) && r.IsAvailable == false),
                            LastDayErrors    = dbContext.Catalogs.Count(r => r.CreatedDate > DateTime.UtcNow.AddDays(-1) && r.IsAvailable == false)
                        };

                        dbContext.Catalogs.Add(catalog);
                        dbContext.SaveChanges();
                    }
                    return(true);
                }
            }
            catch (Exception e)
            {
                _logger.LogError($"Wasn't able to save objects to databse, ex: {e}");
                return(false);
            }
        }
Example #6
0
        public IEnumerable <WeeklyScheduleViewModel> GetWeeklySchedule()
        {
            var context = new ServicesDbContext();

            //var a = context.WeeklySchedule.Include("Day.WeekDay").ToList();
            var a = context.WeeklySchedule.Include("Day.WeekDay").Include("FkUser").Include("Day.WorkTime").ToList();

            List <WeeklyScheduleViewModel> asd = WeeklyScheduleViewModel.Convert(a);

            return(asd);
        }
Example #7
0
        public async Task <IActionResult> PostWorkTime([FromBody] WorkTime WorkTime)
        {
            var _context = new ServicesDbContext();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.WorkTime.Add(WorkTime);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetWorkTime", new { id = WorkTime.Id }, WorkTime));
        }
Example #8
0
        public async Task <IActionResult> PostDay([FromBody] Day Day)
        {
            var _context = new ServicesDbContext();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.Day.Add(Day);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetDay", new { id = Day.Id }, Day));
        }
        public async Task <IActionResult> PostSubService([FromBody] SubService subservice)
        {
            var _context = new ServicesDbContext();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.SubService.Add(subservice);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetSubService", new { id = subservice.Id }, subservice));
        }
        public async Task <IActionResult> PostReservation([FromBody] Reservation reservation)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var context = new ServicesDbContext();

            context.Reservation.Add(reservation);
            await context.SaveChangesAsync();

            return(CreatedAtAction("GetReservation", new { id = reservation.Id }, reservation));
        }
Example #11
0
        public async Task <IActionResult> PostWeeklySchedule([FromBody] WeeklySchedule WeeklySchedule)
        {
            var _context = new ServicesDbContext();

            WeeklySchedule.FkUserId = "645b38af-d971-4cdb-949f-66e3b86dccbc";

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.WeeklySchedule.Add(WeeklySchedule);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetWeeklySchedule", new { id = WeeklySchedule.Id }, WeeklySchedule));
        }
Example #12
0
        public async Task <IActionResult> PostService([FromBody] Service service)
        {
            var _context = new ServicesDbContext();

            service.FkUserId = User.Claims.First(x => x.Type == "UserID").Value;

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.Service.Add(service);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetService", new { id = service.Id }, service));
        }
Example #13
0
        public async Task <IActionResult> GetDay([FromRoute] int id)
        {
            var _context = new ServicesDbContext();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var Day = await _context.Day.FindAsync(id);

            if (Day == null)
            {
                return(NotFound());
            }

            return(Ok(Day));
        }
Example #14
0
        public async Task <IActionResult> GetWorkTime([FromRoute] int id)
        {
            var _context = new ServicesDbContext();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var WorkTime = await _context.WorkTime.FindAsync(id);

            if (WorkTime == null)
            {
                return(NotFound());
            }

            return(Ok(WorkTime));
        }
        public async Task <IActionResult> DeleteSubService([FromRoute] int id)
        {
            var _context = new ServicesDbContext();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var subservice = await _context.SubService.FindAsync(id);

            if (subservice == null)
            {
                return(NotFound());
            }

            _context.SubService.Remove(subservice);
            await _context.SaveChangesAsync();

            return(Ok(subservice));
        }
        public async Task <IActionResult> DeleteReservation([FromRoute] int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var context = new ServicesDbContext();

            var reservation = await context.Reservation.FindAsync(id);

            if (reservation == null)
            {
                return(NotFound());
            }

            context.Reservation.Remove(reservation);
            await context.SaveChangesAsync();

            return(Ok(reservation));
        }
        private bool IsValidReservation(int id)
        {
            var context = new ServicesDbContext();

            var reservation = context.Reservation.Where(x => x.Id == id).Include("SubService.Service.FkUser.WeeklySchedule.Day.WorkTime").ToList().First();

            short kelintadienis = Convert.ToInt16(reservation.StartDate.DayOfWeek);

            var workTimes = new List <WorkTime>();

            try
            {
                workTimes = reservation.SubService.Service.FkUser.WeeklySchedule.First().Day.ElementAt(kelintadienis - 1).WorkTime.ToList();
            }
            catch (InvalidOperationException)
            {
                return(false);
            }
            //var serviceProvider = context.Reservation.Where(x => x.Id == id).Include("SubService.Service.FkUser").ToList().First().SubService.Service.FkUser;

            //var serviceClient = context.Reservation.Where(x => x.Id == id).Include("FkUser").ToList().First().FkUser;

            //DATOS NETIKRINU, TIK LAIKA

            int start = reservation.StartDate.TimeOfDay.Minutes + (reservation.StartDate.TimeOfDay.Hours * 60);

            int end = start + reservation.SubService.Duration;

            foreach (var timespan in workTimes)
            {
                if (start >= timespan.MinutesFrom && end <= timespan.MinutesTo)
                {
                    return(true);
                }
            }

            return(false);
        }
Example #18
0
        private bool WeeklyScheduleExists(int id)
        {
            var _context = new ServicesDbContext();

            return(_context.WeeklySchedule.Any(e => e.Id == id));
        }
Example #19
0
        private bool DayExists(int id)
        {
            var _context = new ServicesDbContext();

            return(_context.Day.Any(e => e.Id == id));
        }
        public SubService GetSubService([FromRoute] int id)
        {
            var context = new ServicesDbContext();

            return(context.SubService.Where(x => x.Id == id).FirstOrDefault());
        }
        public IEnumerable <SubService> GetSubService()
        {
            var context = new ServicesDbContext();

            return(context.SubService.ToList());
        }
Example #22
0
        public IEnumerable <Day> GetDay()
        {
            var context = new ServicesDbContext();

            return(context.Day.ToList());
        }
Example #23
0
        public string ReturnFullInfo(int serviceId)
        {   //todo использую три таблицы с одинаковыми данными, своего рода шардинг предполагала,
            //можно было бы сделать одну таблицу, тогда код уменьшился бы в три раза

            try
            {
                using (ServicesDbContext dbContext = new ServicesDbContext())
                {
                    if (serviceId == 0)
                    {
                        double   RefdataBestTime = _config.GetSection("ResponseBestTime:MaxRefdataResponseDuration").Get <double>();
                        Refdata  refdata         = dbContext.Refdatas.Last();
                        StatusRm statusRm        = new StatusRm()
                        {
                            IsAvailable = refdata.IsAvailable,
                            LastHourAvgResponseDuration = dbContext.Refdatas.Where(r => r.CreatedDate > DateTime.UtcNow.AddMinutes(-60)).Select(x => x.ResponseDuration).Average(),
                            LastDayAvgResponseDuration  = dbContext.Refdatas.Where(r => r.CreatedDate > DateTime.UtcNow.AddDays(-1)).Select(x => x.ResponseDuration).Average(),
                            ResponseDuration            = refdata.ResponseDuration,
                            LastDayErrors               = refdata.LastDayErrors,
                            LastHourErrors              = refdata.LastHourErrors,
                            BestResponseTime            = RefdataBestTime,
                            AvgResponseDuration         = dbContext.Refdatas.Select(x => x.ResponseDuration).Average(),
                            LastHourMaxResponseDuration = dbContext.Refdatas.Where(r => r.CreatedDate > DateTime.UtcNow.AddMinutes(-60)).Select(x => x.ResponseDuration).Max(),
                            LastDayMaxResponseDuration  = dbContext.Refdatas.Where(r => r.CreatedDate > DateTime.UtcNow.AddDays(-1)).Select(x => x.ResponseDuration).Max()
                        };
                        statusRm.LastHourResponseDeviationTime = statusRm.LastHourAvgResponseDuration - RefdataBestTime;
                        statusRm.LastDayResponseDeviationTime  = statusRm.LastDayAvgResponseDuration - RefdataBestTime;
                        string serializedDto = JsonConvert.SerializeObject(statusRm);
                        return(serializedDto);
                    }
                    else if (serviceId == 1)
                    {
                        double   IbonusBestTime = _config.GetSection("ResponseBestTime:MaxIbonusResponseDuration").Get <double>();
                        Ibonus   ibonus         = dbContext.Ibonuses.Last();
                        StatusRm statusRm       = new StatusRm()
                        {
                            IsAvailable = ibonus.IsAvailable,
                            LastHourAvgResponseDuration = dbContext.Ibonuses.Where(r => r.CreatedDate > DateTime.UtcNow.AddMinutes(-60)).Select(x => x.ResponseDuration).Average(),
                            LastDayAvgResponseDuration  = dbContext.Ibonuses.Where(r => r.CreatedDate > DateTime.UtcNow.AddDays(-1)).Select(x => x.ResponseDuration).Average(),
                            ResponseDuration            = ibonus.ResponseDuration,
                            LastDayErrors               = ibonus.LastDayErrors,
                            LastHourErrors              = ibonus.LastHourErrors,
                            BestResponseTime            = IbonusBestTime,
                            AvgResponseDuration         = dbContext.Ibonuses.Select(x => x.ResponseDuration).Average(),
                            LastHourMaxResponseDuration = dbContext.Ibonuses.Where(r => r.CreatedDate > DateTime.UtcNow.AddMinutes(-60)).Select(x => x.ResponseDuration).Max(),
                            LastDayMaxResponseDuration  = dbContext.Ibonuses.Where(r => r.CreatedDate > DateTime.UtcNow.AddDays(-1)).Select(x => x.ResponseDuration).Max()
                        };
                        statusRm.LastHourResponseDeviationTime = statusRm.LastHourAvgResponseDuration - IbonusBestTime;
                        statusRm.LastDayResponseDeviationTime  = statusRm.LastDayAvgResponseDuration - IbonusBestTime;
                        string serializedDto = JsonConvert.SerializeObject(statusRm);
                        return(serializedDto);
                    }
                    else
                    {
                        double   CatalogBestTime = _config.GetSection("ResponseBestTime:MaxCatalogResponseDuration").Get <double>();
                        Catalog  catalog         = dbContext.Catalogs.Last();
                        StatusRm statusRm        = new StatusRm()
                        {
                            IsAvailable = catalog.IsAvailable,
                            LastHourAvgResponseDuration = dbContext.Catalogs.Where(r => r.CreatedDate > DateTime.UtcNow.AddMinutes(-60)).Select(x => x.ResponseDuration).Average(),
                            LastDayAvgResponseDuration  = dbContext.Catalogs.Where(r => r.CreatedDate > DateTime.UtcNow.AddDays(-1)).Select(x => x.ResponseDuration).Average(),
                            ResponseDuration            = catalog.ResponseDuration,
                            LastDayErrors               = catalog.LastDayErrors,
                            LastHourErrors              = catalog.LastHourErrors,
                            BestResponseTime            = CatalogBestTime,
                            AvgResponseDuration         = dbContext.Catalogs.Select(x => x.ResponseDuration).Average(),
                            LastHourMaxResponseDuration = dbContext.Catalogs.Where(r => r.CreatedDate > DateTime.UtcNow.AddMinutes(-60)).Select(x => x.ResponseDuration).Max(),
                            LastDayMaxResponseDuration  = dbContext.Catalogs.Where(r => r.CreatedDate > DateTime.UtcNow.AddDays(-1)).Select(x => x.ResponseDuration).Max()
                        };
                        statusRm.LastHourResponseDeviationTime = statusRm.LastHourAvgResponseDuration - CatalogBestTime;
                        statusRm.LastDayResponseDeviationTime  = statusRm.LastDayAvgResponseDuration - CatalogBestTime;
                        string serializedDto = JsonConvert.SerializeObject(statusRm);
                        return(serializedDto);
                    }
                }
            }
            catch
            {
                _logger.LogError("Wasn't able to get objects from databse");
                return(string.Empty);
            }
        }
Example #24
0
        public IEnumerable <WorkTime> GetWorkTime()
        {
            var context = new ServicesDbContext();

            return(context.WorkTime.ToList());
        }
Example #25
0
        private bool WorkTimeExists(int id)
        {
            var _context = new ServicesDbContext();

            return(_context.WorkTime.Any(e => e.Id == id));
        }
Example #26
0
        private bool ServiceExists(string id)
        {
            var _context = new ServicesDbContext();

            return(_context.Service.Any(e => e.Id == id));
        }