private void SeanseManager_SeanseRemoved(object sender, Seanse seanse) { window.Dispatcher.BeginInvoke((ThreadStart) delegate() { Seanses.Remove(seanse); }); }
public static List <ReportLine> GetReport(this Seanse seanse, int interval, Configuration config) { DateTime currentTime = seanse.StartWorkingTime; List <ReportLine> report = new List <ReportLine>(); DateTime end = seanse.LastWorkingTime; while (currentTime < end) { ReportLine line = new ReportLine(); DateTime nextTime = currentTime.AddMinutes(60 - currentTime.Minute); if (nextTime > end) { nextTime = end; } line.Time = nextTime; line.Abonents = seanse.GetAbonents(currentTime, nextTime, config.AbonentsK).Count; line.AbonentsWithInterval = seanse.GetAbonentsWithInterval(currentTime, nextTime, interval, 0.15f, 0.2f).Count; line.MaxSizeInFrames = seanse.GetMaxInFrames(currentTime, nextTime); line.MaxSizeInBytes = line.MaxSizeInFrames * 3.75f; report.Add(line); currentTime = currentTime.AddMinutes(60 - currentTime.Minute); } return(report); }
public IActionResult Edit(int id, [Bind("Id,Dzien,Godzina,FilmyId,SaleId")] Seanse seanse) { if (id != seanse.Id) { return(NotFound()); } if (ModelState.IsValid) { try { UnitOfWork.SeanseRepository.Update(seanse); UnitOfWork.Save(); } catch (DbUpdateConcurrencyException) { if (UnitOfWork.SeanseRepository.GetById(seanse.Id) == null) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(seanse)); }
public ActionResult Dodajseans() { //List<SelectListItem> items = new List<SelectListItem>(); //items.Add(new SelectListItem { Text = "Action", Value = "0" }); //items.Add(new SelectListItem { Text = "Drama", Value = "1" }); //items.Add(new SelectListItem { Text = "Comedy", Value = "2", Selected = true }); //items.Add(new SelectListItem { Text = "Science Fiction", Value = "3" }); var filmy = db.Filmy.ToList().Select(u => new SelectListItem { Text = u.Tytul, Value = u.Id_Filmu.ToString() }); var model = new Seanse(); model.filmylist = filmy; return(View(model)); }
private bool LoadSeanse(string directory) { bool result = false; Seanse newSeanse = null; try { SeanseAdding.Invoke(this, directory); newSeanse = new Seanse(directory, IoCContainer.Settings.Configuration); Seanses.Add(newSeanse); result = true; } catch (Seanse.LogFileNotFoundException e) { logger.LogMessage(e.FileName + " не найден", LogLevel.Warning); } catch (Exception e) { logger.LogMessage(e.ToString() + " " + e.Message, LogLevel.Error); } finally { SeanseAdded.Invoke(this, newSeanse); } return(result); }
public void AddSeansesFromVentursFile(List <string> files) { LoadingStarted.Invoke(this); foreach (string file in files) { List <Channel> channels = GetChannelsFromVentursFile(file); Parallel.ForEach(channels, channelInfo => { string pathPartToPaste = Path.GetDirectoryName(file); string pathPartToDelete = channelInfo.Directory.Substring(0, channelInfo.Directory.IndexOf("riClient") + 8); string channelDirectory = channelInfo.Directory.Replace(pathPartToDelete, pathPartToPaste).ToLower(); Seanse currentSeanse = Seanses.FirstOrDefault(x => x.Directory.FullName.ToLower() == channelDirectory); if (currentSeanse == null) { lock (Seanses) { LoadSeanse(channelDirectory); } } if (currentSeanse != null) { currentSeanse.ChannelInfo = channelInfo; } }); } LoadingEnded(this); }
public string GetReservationHtmlMessage(Seanse seanse, Seat seat) { return(string.Format("You have reserved seat <b>{0}</b> in row <b>{1}</b> for '{2}' at {3}", seat.SeatNumber, seat.Row, seanse.Movie.Title, seanse.StartTime)); }
public string GetReservationPlainTextMessage(Seanse seanse, Seat seat) { return(string.Format("You have reserved seat {0} in row {1} for '{2}' at {3}", seat.SeatNumber, seat.Row, seanse.Movie.Title, seanse.StartTime)); }
public void RemoveSeanse(Seanse seanse) { lock (Seanses) { if (Seanses.Remove(seanse)) { SeanseRemoved(this, seanse); } } }
private void Seanse_WorkingEnd(Seanse seanse, EventArgs args) { string msg = string.Format("Линк {0} {1} окончил свою работу " + IoCContainer.Settings.Configuration.MinutesToAwaitAfterEnd + " минут назад.", seanse.Freq, seanse.Mode); if (NotifyWhenEndWorking) { MessageBox.Show(msg, "Окончание работы", MessageBoxButtons.OK, MessageBoxIcon.Information); } logger.LogMessage(msg, LogLevel.Info); }
private void Seanse_WorkingStart(Seanse seanse, EventArgs args) { string msg = string.Format("Линк {0} {1} начинает свою работу.", seanse.Freq, seanse.Mode); if (NotifyWhenStartWorking) { MessageBox.Show(msg, "Начало работы", MessageBoxButtons.OK, MessageBoxIcon.Information); } logger.LogMessage(msg, LogLevel.Info); }
private void newSeanse_ActiveEnd(Seanse seanse, EventArgs args) { string msg = string.Format("Линк {0} {1} вышел из активного режима " + IoCContainer.Settings.Configuration.MinutesToAwaitAfterEnd + " минут назад.", seanse.Freq, seanse.Mode); if (NotifyWhenEndActive) { MessageBox.Show(msg, "Выход из активного режима", MessageBoxButtons.OK, MessageBoxIcon.Information); } logger.LogMessage(msg, LogLevel.Info); }
private void Seanse_ActiveStart(Seanse seanse, EventArgs args) { string msg = string.Format("Линк {0} {1} преходит в активный режим.", seanse.Freq, seanse.Mode); if (NotifyWhenStartActive) { MessageBox.Show(msg, "Переход в активный", MessageBoxButtons.OK, MessageBoxIcon.Information); } logger.LogMessage(msg, LogLevel.Info); }
public IActionResult Create([Bind("Id,Dzien,Godzina,FilmyId,SaleId")] Seanse seanse) { if (ModelState.IsValid) { UnitOfWork.SeanseRepository.Create(seanse); UnitOfWork.Save(); return(RedirectToAction("Index")); } return(View("Edit")); }
public void RemoveAllSeanses() { lock (Seanses) { while (Seanses.Any()) { Seanse removedSeanse = Seanses[0]; Seanses.RemoveAt(0); SeanseRemoved(this, removedSeanse); } } }
public void Handle(ReserveSeatCommand command) { Seanse seanse = _roomRepository.GetSeanse(command.SeanseId); User user = _userRepository.GetUser(command.UserId); var seat = new Seat(command.SeatRow, command.SeatNumber); seanse.ReserveSeatForUser(command.UserId, seat); FreeTicketLotery lottery = new FreeTicketLotery(_calculatorFactory); lottery.DrawFreeTicketForUser(user); }
private void SeanseManager_SeanseUpdated(object sender, Seanse seanse) { OnPropertyChanged("ActiveCount"); OnPropertyChanged("WorkingCount"); if (seanse == SelectedSeanse) { window.Dispatcher.BeginInvoke((ThreadStart) delegate() { UpdateTuningChart(); UpdateWorkingChart(); UpdateSizeChart(); }); } }
private void SeanseManager_SeanseAdded(object sender, Seanse newSeanse) { if (newSeanse != null) { newSeanse.WorkingStart += Seanse_WorkingStart; newSeanse.ActiveStart += Seanse_ActiveStart; newSeanse.WorkingEnd += Seanse_WorkingEnd; newSeanse.ActiveEnd += newSeanse_ActiveEnd; window.Dispatcher.BeginInvoke((ThreadStart) delegate() { Seanses.Add(newSeanse); SelectedSeanse = newSeanse; }); } }
public bool removeShowing(int seansId) { try { Seanse seanse = kinoEntities.Seanse.Find(seansId); seanse.CzyAktywny = false; kinoEntities.SaveChanges(); } catch (Exception) { return(false); } return(true); }
static void Main(string[] args) { logger = new PrimitiveLogger(Path.Combine(Directory.GetCurrentDirectory(), "report_log.txt"), LogLevel.Error); if (args.Count() < 2) { logger.LogMessage("Не указан путь к сеансу", LogLevel.Warning); return; } Configuration config = new Configuration(); if (!LoadConfiguration(out config)) { return; } int interval = 0; if (Int32.TryParse(args[0], out interval)) { for (int i = 1; i < args.Count(); i++) { logger.LogMessage("Загрузка сеанса " + args[1], LogLevel.Info); Seanse mySeanse = new Seanse(args[1], config); logger.LogMessage("Составление отчета", LogLevel.Info); List <ReportLine> report = mySeanse.GetReport(interval, config); try { string reportFile = Path.Combine(args[i], String.Concat(mySeanse.Freq, '_', mySeanse.Mode, '_', interval, "report.csv")); logger.LogMessage("Сохранение отчета в " + reportFile, LogLevel.Info); File.WriteAllText(reportFile, report.ConvertToCSV()); Process excel = new Process(); excel.StartInfo = new ProcessStartInfo("excel", '"' + reportFile + '"'); excel.Start(); } catch (Exception e) { logger.LogMessage(e.Message, LogLevel.Error); } } } else { logger.LogMessage("Не удалось распознать интервал", LogLevel.Error); } }
public async Task <ActionResult> Dodajseans(Seanse seanse) { if (!ModelState.IsValid) { var filmy = db.Filmy.ToList().Select(u => new SelectListItem { Text = u.Tytul, Value = u.Id_Filmu.ToString() }); seanse.filmylist = filmy; return(View(seanse)); } DateTime datefinish = seanse.Data_i_godzina + TimeSpan.Parse(seanse.godzina); Console.WriteLine(datefinish); seanse.Data_i_godzina = datefinish; //var dbtable = new Seanse(); //dbtable.Id_Filmu = seanse.Id_Filmu; //dbtable.Data_i_godzina = datefinish; db.Seanse.Add(seanse); await db.SaveChangesAsync(); var idseansu = seanse.Id_Seansu; for (int i = 1; i <= 144; i++) { var miejsca = new Miejsca(); miejsca.Id_Seansu = idseansu; miejsca.Nr_Miejsca = Convert.ToByte(i); miejsca.Status = false; db.Miejsca.Add(miejsca); } await db.SaveChangesAsync(); return(RedirectToAction("Dodajseans", "Admin", new { msg = "Dodałeś nowy seans" })); }
public void NotifyThatReservationIsReady(User user, Seanse seanse, Seat seat) { string message = _templateRepository.GetReservationPlainTextMessage(seanse, seat); if (!CanSendSmsNotification(user)) { return; } SmsToSend queuedSms = GetSmsFromQueue(user.Id); if (queuedSms != null) { queuedSms.Message = message + " " + queuedSms.Message; } else { QueueSms(user, message); } }
public void NotifyThatReservationIsReady(User user, Seanse seanse, Seat seat) { string message = _templateRepository.GetReservationHtmlMessage(seanse, seat); if (!CanSendEmailNotification(user)) { return; } MailToSend queuedEmail = GetMailFromQueue(user.Id); if (queuedEmail != null) { queuedEmail.Subject = "You have reserved seat and won free ticket"; queuedEmail.Content = message + Environment.NewLine + queuedEmail.Content; } else { QueueEmail(user, "You have reserved seat", message); } }
public async Task RemoveSeanseAsync(Seanse seanse) { Task removingTask = Task.Run(() => RemoveSeanse(seanse)); await removingTask; }