public void Add(Subscription subscription)
        {
            subscription.Confirmed        = false;
            subscription.ConfirmationCode = _rsg.Next(10);

            _db.Subscriptions.Add(subscription);
            _db.SaveChanges();
        }
        //Set a subscription to inactive status
        public void CancelSubscription(Subscription Model)
        {
            Subscription TargetSubscription;

            using (var db = new SubscriptionContext())
            {
                TargetSubscription        = db.Subscription.Find(Model.UserProfileId);
                TargetSubscription.Status = "inactive";
                db.SaveChanges();
            }
        }
        //Set a subscription to suspend status (call when user cancel his subscription)
        public void SuspendSubscription(Subscription Model)
        {
            Subscription TargetSubscription;

            using (var db = new SubscriptionContext())
            {
                TargetSubscription        = db.Subscription.Find(Model.UserProfileId);
                TargetSubscription.Status = "suspended";
                db.SaveChanges();
            }
        }
        public void SetSubscriptionInactive(int id)
        {
            Subscription TargetSubscription;

            using (var db = new SubscriptionContext())
            {
                TargetSubscription                 = db.Subscription.Find(id);
                TargetSubscription.Status          = "inactive";
                db.Entry(TargetSubscription).State = EntityState.Modified;
                db.SaveChanges();
            }
        }
Exemple #5
0
        public ActionResult Subscribe(Subscriber model)
        {
            //watch if model is correct
            if (ModelState.IsValid)
            {
                try
                {
                    var subscriber = _db.Subscribers.FirstOrDefault(u => u.Email.Equals(model.Email));

                    if (subscriber == null)
                    {
                        subscriber = model;
                        subscriber.RegistrationDate = DateTime.Now;

                        _db.Subscribers.Add(subscriber);
                        _db.SaveChanges();
                    }
                    else
                    {
                        TempData["Error"] = "Taki adres email juz jest zarejestrowany.";
                        return(View(model));
                    }
                }
                catch
                {
                    TempData["Error"] = "Coś jest nie tak";
                    return(View());
                }

                TempData["Message"] = "Adres email został zapisany.";
                return(RedirectToAction("Index"));
            }
            else
            {
                return(View(model));
            }
        }
        //Update billing information of the user
        public void UpdatePaymentInfo(Subscription Model)
        {
            Subscription TargetSubscription;

            using (var db = new SubscriptionContext())
            {
                TargetSubscription = db.Subscription.Find(WebSecurity.CurrentUserId);
                TargetSubscription.BillingAddress = Model.BillingAddress;
                TargetSubscription.CardNumber     = Model.CardNumber;
                TargetSubscription.CVVCode        = Model.CVVCode;
                TargetSubscription.ExpirationDate = Model.ExpirationDate;
                TargetSubscription.Zip            = Model.Zip;
                db.SaveChanges();
            }
        }
        //Register a new subscription
        public void CreateSub()
        {
            Subscription NewSubscription;

            using (var db = new SubscriptionContext())
            {
                NewSubscription          = db.Subscription.Create();
                NewSubscription.Status   = "active";
                NewSubscription.Payments = new List <Payment>();

                using (var db2 = new PaymentContext())
                {
                    Payment FirstPayment = db2.Payment.Create();
                    FirstPayment.Amount = 15.0f;
                    FirstPayment.Date   = DateTime.Now;
                    FirstPayment.Status = "cancelled";
                    //  FirstPayment.Subscription = NewSubscription;
                    //  FirstPayment.SubscriptionId = NewSubscription.UserProfileId;
                    db2.Payment.Add(FirstPayment);


                    Payment SecondPayment = db2.Payment.Create();
                    SecondPayment.Amount = 15.0f;
                    SecondPayment.Date   = DateTime.Now.AddDays(30.0);
                    SecondPayment.Status = "pending";
                    //   SecondPayment.Subscription = NewSubscription;
                    //   SecondPayment.SubscriptionId = NewSubscription.UserProfileId;
                    db2.Payment.Add(SecondPayment);


                    //Store subscription info
                    using (var db3 = new UsersContext())
                    {
                        UserProfile CurrentUser = db3.UserProfiles.Include("Subscription").First(x => x.UserId.Equals(WebSecurity.CurrentUserId));
                        CurrentUser.Subscription = NewSubscription;
                        NewSubscription.Payments.Add(FirstPayment);
                        NewSubscription.Payments.Add(SecondPayment);
                        NewSubscription.UserProfile   = CurrentUser;
                        NewSubscription.UserProfileId = CurrentUser.UserId;
                        db3.SaveChanges();
                    }
                    db2.SaveChanges();
                    db.Subscription.Add(NewSubscription);
                    db.SaveChanges();
                }
            }
        }
Exemple #8
0
        public RentTabViewModel()
        {
            RentDateStart    = DateTime.Now;
            RentDateEnd      = DateTime.Now;
            CalculateCommand = new SimpleRelayCommand(Calculate);
            RentCommand      = new SimpleRelayCommand(Rent);

            CollectionOfDevices = new ObservableCollection <device>();

            //dadanie urządzeń do listy urządzeń wyświetlanych na liście dostępnych do wypozyczenia
            using (SubscriptionContext context = new SubscriptionContext())
            {
                //var result = (from d in context.devices select d).ToList();

                //porównanie daty zwrotu z datą dzisiejszą,
                //jeśli dzisiaj powinien być oddany to będzie już dostępny na liście

                foreach (rent r in context.rents)
                {
                    if (r.date_of_return < DateTime.Now || r.date_of_rent > DateTime.Now)
                    {
                        //pobranie z listy wypozyczen-urzadzen urządzenie, ktore jest aktualanie niezajęte
                        var result2 = (from dr in context.devices_rents where r.rentId == dr.rent_id select dr.device).First();

                        //zmienna tymczasowa potrzebna do zaktualizowania statusu wypozyczenia
                        device deviceToChangeIsRentedStatus = (device)result2;


                        //context.devices.Attach(deviceToChangeIsRentedStatus);
                        deviceToChangeIsRentedStatus.is_rented = false;
                    }
                }
                context.SaveChanges();

                var result = (from d in context.devices select d).ToList();

                //odrzucenie urządzeń ktore sa aktualnie wypozyczone
                foreach (device dev in result)
                {
                    if (!dev.is_rented)
                    {
                        CollectionOfDevices.Add(dev);
                    }
                }
            }
        }
        private void Save()
        {
            //dodawanie urządzenia do bazy

            //tworzenie obiektów i przypisanie im wartości z wypełnionego formularza
            genre tmpGenre = new genre();

            tmpGenre.genre_name = KindOfDevice.ToLower();

            device tmpDevice = new device();

            tmpDevice.genre             = tmpGenre;
            tmpDevice.manufacturer_name = ManufacturerName.ToLower();
            tmpDevice.model_name        = ModelName.ToLower();
            tmpDevice.serial_number     = SerialNumber.ToLower();

            try
            {
                CostPerDay      = CostPerDay.Replace(".", ",");
                tmpDevice.price = Convert.ToDouble(CostPerDay);
            }

            catch (Exception e)
            {
                File.AppendAllText(MainWindowViewModel.PathToLog, e.ToString());
                System.Windows.MessageBox.Show("Zła wartość liczbowa");
                return;
            }

            try
            {
                using (SubscriptionContext context = new SubscriptionContext())
                {
                    context.devices.Add(tmpDevice);
                    context.SaveChanges();
                }
                System.Windows.MessageBox.Show("Dodano urządzenie do bazy.");
            }
            catch (Exception e)
            {
                File.AppendAllText(MainWindowViewModel.PathToLog, e.ToString());
                System.Windows.MessageBox.Show("Nie dodano urządzenia do bazy.");
            }
        }
        //Dodanie abonamentu klienta
        private void Save()
        {
            try
            {
                SubscriptionContext context   = new SubscriptionContext();
                subscription        subscript = new subscription();
                subscript.registration_data = DateTime.Now;
                subscript.tariff            = SelectedOffer;

                context.subscriptions.Add(subscript);
                context.SaveChanges();
                MessageBox.Show("Dodano abonament.");
            }
            catch (Exception ex)
            {
                File.AppendAllText(MainWindowViewModel.PathToLog, ex.ToString());
                MessageBox.Show("Błąd! Nie udało się dodać abonamentu.", "Błąd", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Exemple #11
0
        private void SaveTariff()
        {
            if (!string.IsNullOrEmpty(NameOfTariff))
            {
                try
                {
                    SubscriptionContext context = new SubscriptionContext();
                    tariff TariffToAdd          = new tariff();
                    TariffToAdd.name_tarriff      = NameOfTariff;
                    TariffToAdd.number_of_calling = NumberOfPhones;
                    TariffToAdd.discount          = Discount;

                    context.tariffs.Add(TariffToAdd);
                    context.SaveChanges();

                    System.Windows.MessageBox.Show("Taryfa została poprawnie dodana do bazy", "Komunikat");
                }
                catch (Exception ex)
                {
                    File.AppendAllText(MainWindowViewModel.PathToLog, ex.ToString());
                }
            }
        }
Exemple #12
0
 //wybór i usunięcie z bazy urządzenia wybranego z listy
 private void SelectDevice()
 {
     using (SubscriptionContext context = new SubscriptionContext())
     {
         try
         {
             MessageBoxResult mr = MessageBox.Show("Czy na pewno usunąć to urządzenie?", "Pytanie", MessageBoxButton.YesNo);
             if (mr == MessageBoxResult.Yes)
             {
                 context.devices.Attach(SelectedDevice);
                 context.devices.Remove(SelectedDevice);
                 context.SaveChanges();
             }
             MessageBox.Show("Usunięto urządzenie z bazy.");
             CollectionOfDevices.Remove(SelectedDevice);
         }
         catch (Exception e)
         {
             File.AppendAllText(MainWindowViewModel.PathToLog, e.ToString());
             MessageBox.Show("Błąd! Nie usunięto urządzenia.");
         }
     }
 }
        public IHttpActionResult Post([FromBody] SubscriberIn data)
        {
            // Validate subscriber input data
            if (!ModelState.IsValid)
            {
                return(BadRequest("Invalid data"));
            }

            // Persist subscriber data in database
            // TODO: implement through DI
            var subscriberId = 0;

            try
            {
                using (SubscriptionContext dbContext = new SubscriptionContext())
                {
                    Subscriber subscriber = new Subscriber()
                    {
                        Name       = data.Name,
                        Email      = data.Email,
                        CreateDate = DateTime.Now
                    };

                    dbContext.Subscribers.Add(subscriber);
                    dbContext.SaveChanges();

                    subscriberId = subscriber.Id;
                }
            }
            catch (Exception)
            {
                // TODO: log error
                throw;
            }

            return(Ok(subscriberId));
        }
Exemple #14
0
        public JsonResult RemoveEmail(int SubscriptionId, string Email)
        {
            var item      = cnt.Subscriptions.Single(m => m.id == SubscriptionId);
            var email_old = (string)item.email.Trim();

            //is email for remove in email_old?
            if (email_old.IndexOf(Email) == -1)
            {
                return(new JsonResult()
                {
                    Data = new
                    {
                        Result = "Error",
                        Message = Email + " is not in old email string " + email_old
                    },
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet
                });
            }

            //Remove email
            string[] s2 = email_old.Split(';');

            string email_new = "";

            foreach (string s3 in s2)
            {
                string s4 = s3.Trim();

                if (s4 != "" && s4 != Email)
                {
                    email_new = email_new + s4 + ";";
                }
            }

            //Update email
            if (email_new.Length > 0)
            {
                email_new = email_new.Remove(email_new.Length - 1);

                item.email = email_new;
                cnt.SaveChanges();

                return(new JsonResult()
                {
                    Data = new
                    {
                        Result = "Success",
                        SubscriptionId = SubscriptionId,
                        RemovedEmail = Email,
                        EmailOld = email_old,
                        EmailNew = email_new,
                        DbString = "UPDATE NewspaperMail SET email = '" + email_new + "' WHERE id=" + SubscriptionId
                    },
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet
                });

                //Email is empty, let's disable subscription
            }
            else
            {
                //Update email and disable subscription
                item.email   = "";
                item.Enabled = false;
                cnt.SaveChanges();

                return(new JsonResult()
                {
                    Data = new
                    {
                        Result = "Success",
                        LastEmailWasDeleted = true,
                        Message = "Last email was deleted, let's disable subscription."
                    },
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet
                });
            }
        }
Exemple #15
0
        private void Rent()
        {
            MessageBoxResult mbrTmp = MessageBox.Show("Czy na pewno wypożyczyć te urządzenia?", "Pytanie", MessageBoxButton.YesNoCancel, MessageBoxImage.Question, MessageBoxResult.Yes);

            if (mbrTmp == MessageBoxResult.Yes)
            {
                rent RentToAdd = new rent();
                RentToAdd.date_of_rent   = RentDateStart;
                RentToAdd.date_of_return = RentDateEnd;
                RentToAdd.total_price    = TotalCostWithDiscount;

                try
                {
                    RentToAdd.subscription_id = Convert.ToInt16(SubscriptionId);
                }
                catch (Exception e)
                {
                    File.AppendAllText(MainWindowViewModel.PathToLog, e.ToString());
                    System.Windows.MessageBox.Show("Nie powiodło się pobranie abonenta z bazy. Sprawdź dane.");
                    return;
                }

                using (SubscriptionContext context = new SubscriptionContext())
                {
                    try
                    {
                        context.rents.Add(RentToAdd);
                        context.SaveChanges();

                        foreach (device dev in CollectionOfDevices)
                        {
                            if (dev.IsChecked)
                            {
                                var    result         = (from d in context.devices where dev.deviceId == d.deviceId select d).First();
                                device deviceToUpdate = (device)result;
                                context.devices.Attach(deviceToUpdate);
                                deviceToUpdate.is_rented = true;

                                //dodawanie do bazy wpisu o wypozyczeniu do tabeli pośredniej miedzy wyporzyczeniami a urzadzeniami
                                devices_rents devRentToAdd = new devices_rents();
                                devRentToAdd.device_id = deviceToUpdate.deviceId;
                                devRentToAdd.rent_id   = RentToAdd.rentId;

                                context.devices_rents.Add(devRentToAdd);
                            }
                        }



                        context.SaveChanges();
                        System.Windows.MessageBox.Show("Dodano wypożyczenie.");

                        //aktualizacja danych na liście urządzeń
                        //(wypozyczono coś, wiec trzeba to usunąc z listy dostepnych do wypozyczenia)

                        var result2 = (from d in context.devices select d).ToList();
                        CollectionOfDevices = new ObservableCollection <device>();

                        //odrzucenie urządzeń ktore sa aktualnie wypozyczone
                        foreach (device dev in result2)
                        {
                            if (!dev.is_rented)
                            {
                                CollectionOfDevices.Add(dev);
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        File.AppendAllText(MainWindowViewModel.PathToLog, e.ToString());
                        System.Windows.MessageBox.Show("Nie powiodło się dodanie wypożyczenia do bazy. Sprawdź dane.");
                        return;
                    }
                }
            }
        }