Example #1
0
 private void SeanseManager_SeanseRemoved(object sender, Seanse seanse)
 {
     window.Dispatcher.BeginInvoke((ThreadStart) delegate()
     {
         Seanses.Remove(seanse);
     });
 }
Example #2
0
        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);
        }
Example #3
0
        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));
        }
Example #4
0
        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));
        }
Example #5
0
        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);
        }
Example #6
0
 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);
 }
Example #7
0
 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));
 }
Example #8
0
 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));
 }
Example #9
0
 public void RemoveSeanse(Seanse seanse)
 {
     lock (Seanses)
     {
         if (Seanses.Remove(seanse))
         {
             SeanseRemoved(this, seanse);
         }
     }
 }
Example #10
0
        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);
        }
Example #11
0
        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);
        }
Example #12
0
        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);
        }
Example #13
0
        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);
        }
Example #14
0
 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"));
 }
Example #15
0
 public void RemoveAllSeanses()
 {
     lock (Seanses)
     {
         while (Seanses.Any())
         {
             Seanse removedSeanse = Seanses[0];
             Seanses.RemoveAt(0);
             SeanseRemoved(this, removedSeanse);
         }
     }
 }
Example #16
0
        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);
        }
Example #17
0
 private void SeanseManager_SeanseUpdated(object sender, Seanse seanse)
 {
     OnPropertyChanged("ActiveCount");
     OnPropertyChanged("WorkingCount");
     if (seanse == SelectedSeanse)
     {
         window.Dispatcher.BeginInvoke((ThreadStart) delegate()
         {
             UpdateTuningChart();
             UpdateWorkingChart();
             UpdateSizeChart();
         });
     }
 }
Example #18
0
 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;
         });
     }
 }
Example #19
0
        public bool removeShowing(int seansId)
        {
            try
            {
                Seanse seanse = kinoEntities.Seanse.Find(seansId);
                seanse.CzyAktywny = false;
                kinoEntities.SaveChanges();
            }
            catch (Exception)
            {
                return(false);
            }

            return(true);
        }
Example #20
0
        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);
            }
        }
Example #21
0
        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 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);
            }
        }
Example #25
0
        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);
            }
        }
Example #26
0
 public async Task RemoveSeanseAsync(Seanse seanse)
 {
     Task  removingTask = Task.Run(() => RemoveSeanse(seanse));
     await removingTask;
 }