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()); }
public static void Main(string[] args) { using (var context = new ServicesDbContext()) { context.Database.Migrate(); } CreateWebHostBuilder(args).Build().Run(); }
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()); }
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); } }
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); }
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)); }
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)); }
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)); }
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)); }
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)); }
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); }
private bool WeeklyScheduleExists(int id) { var _context = new ServicesDbContext(); return(_context.WeeklySchedule.Any(e => e.Id == id)); }
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()); }
public IEnumerable <Day> GetDay() { var context = new ServicesDbContext(); return(context.Day.ToList()); }
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); } }
public IEnumerable <WorkTime> GetWorkTime() { var context = new ServicesDbContext(); return(context.WorkTime.ToList()); }
private bool WorkTimeExists(int id) { var _context = new ServicesDbContext(); return(_context.WorkTime.Any(e => e.Id == id)); }
private bool ServiceExists(string id) { var _context = new ServicesDbContext(); return(_context.Service.Any(e => e.Id == id)); }