protected void Button1_Click(object sender, EventArgs e)
        {
            MasterWebServiceSoapClient client=new MasterWebServiceSoapClient();
            int idUnit;
            int idContact;
            string tipUnitate = string.Empty;
            string adminEmail = string.Empty;
            string fromAddress = "*****@*****.**";
            string fromPassword = "******";

            GetInfosFromForm();

            string bodyEmail = "Stimate " + nume_complet + ",\n";
            bodyEmail += "Rezervarea dumneavoastra a fost facuta cu succes. Va confirmam faptul ca incepand cu data de " + data_Start + " sunteti asteptat la " + numeUnit +
                         ". Va reamintim ca rezervarea dumneavoastra a fost facuta pentru " + nr_nopti + " nopti si ati rezervat un numar de " + nr_camere +
                         "camere. Va multumim si va mai asteptam!";
            string bodyEmailAdmin = "Stimate admin al unitatii " + numeUnit + ", \n a fost facuta o rezervare de catre " + nume_complet + "cu urmatoarele specificatii: \n 1. Email: "
                                    + mail + "2. Numar camere: " + nr_camere + "3. Numar persoane: " + nr_persoane + "4. Data start: " + data_Start + "5. Numar Nopti: " + nr_nopti +
                                    ".";

            using (MasterEntities context = new MasterEntities())
            {
                var unit = context.Unitati.First(x => x.numeUnitate == numeUnit);
                idUnit = unit.idUnitate;
                var Contact = context.Unitati.First(x=>x.idUnitate == idUnit);
                idContact = Contact.idContact;
            }

            MembershipUser user = Membership.GetUser();
            string numeUser = user.UserName;
            int idUser;
            using (MasterEntities context = new MasterEntities())
            {
                var us = context.Utilizatori.First(x => x.numeUtilizator == numeUser);
                idUser = us.idUtilizator;

                var adminUnit = context.Contact.First(x => x.idContact == idContact);
                adminEmail = adminUnit.email;

                Rezervari rezervare = new Rezervari();
                rezervare.idUnitate = idUnit;
                rezervare.idUtilizator = idUser;
                rezervare.numarCamere = nr_camere;
                rezervare.dataStart = data_Start;
                rezervare.nrNopti = nr_nopti;

                context.AddToRezervari(rezervare);
                context.SaveChanges();
            }

            client.Send_Email(fromAddress, mail, bodyEmail, fromPassword);
            //Send_Email(fromAddress, adminEmail, bodyEmailAdmin, fromPassword);
            ResetForm();
        }
 public static void DeleteRezervare(Rezervari rezervare)
 {
     try
     {
         using (MasterEntities context = new MasterEntities())
         {
             var obj = context.Rezervari.First(x => x.idRezervare == rezervare.idRezervare);
             obj.isDeleted = true;
             context.ApplyCurrentValues("Rezervari", obj);
             context.SaveChanges();
         }
     }
     catch (Exception exc) { throw exc; }
 }
 /// <summary>
 /// Deprecated Method for adding a new object to the Rezervari EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToRezervari(Rezervari rezervari)
 {
     base.AddObject("Rezervari", rezervari);
 }
 /// <summary>
 /// Create a new Rezervari object.
 /// </summary>
 /// <param name="idRezervare">Initial value of the idRezervare property.</param>
 /// <param name="idUtilizator">Initial value of the idUtilizator property.</param>
 /// <param name="idUnitate">Initial value of the idUnitate property.</param>
 /// <param name="numarCamere">Initial value of the numarCamere property.</param>
 /// <param name="dataStart">Initial value of the dataStart property.</param>
 /// <param name="nrNopti">Initial value of the nrNopti property.</param>
 public static Rezervari CreateRezervari(global::System.Int32 idRezervare, global::System.Int32 idUtilizator, global::System.Int32 idUnitate, global::System.Int32 numarCamere, global::System.DateTime dataStart, global::System.Int32 nrNopti)
 {
     Rezervari rezervari = new Rezervari();
     rezervari.idRezervare = idRezervare;
     rezervari.idUtilizator = idUtilizator;
     rezervari.idUnitate = idUnitate;
     rezervari.numarCamere = numarCamere;
     rezervari.dataStart = dataStart;
     rezervari.nrNopti = nrNopti;
     return rezervari;
 }
        protected void Button1_Click(object sender, EventArgs e)
        {
            string returnString;
            GetInfosFromForm();

            if (CheckIfIsAvailable(out returnString))
            {
                MasterWebServiceSoapClient client = new MasterWebServiceSoapClient();
                int idUnit;
                int idContact;
                string tipUnitate = string.Empty;
                string adminEmail = string.Empty;
                string fromAddress = "*****@*****.**";
                string fromPassword = "******";

                string bodyEmail = "Stimate " + nume_complet + ",\n";
                bodyEmail +=
                    "Cererea de rezervare a fost facuta cu succes . Veti primi un email de confirmare dupa aprobarea de catre administratorul unitatii. ";
                string bodyEmailAdmin = "Stimate admin al unitatii " + numeUnit +
                                        ", \n a fost facuta o cerere de rezervare de catre " + nume_complet +
                                        "cu urmatoarele specificatii: \n 1. Email: "
                                        + mail + "2. Numar camere: " + nr_camere + "3. Numar persoane: " + nr_persoane +
                                        "4. Data start: " + data_Start + "5. Numar Nopti: " + nr_nopti +
                                        ". Va rugam sa confirmati rezervarea in sectiunea Editeaza Rezervari din meniul principal al site-ului.";

                using (MasterEntities context = new MasterEntities())
                {
                    var unit = context.Unitati.First(x => x.numeUnitate == numeUnit);
                    idUnit = unit.idUnitate;
                    var Contact = context.Unitati.First(x => x.idUnitate == idUnit);
                    idContact = Contact.idContact;
                }

                MembershipUser user = Membership.GetUser();
                string numeUser = user.UserName;
                int idUser;
                using (MasterEntities context = new MasterEntities())
                {
                    var us = context.Utilizatori.First(x => x.numeUtilizator == numeUser);
                    idUser = us.idUtilizator;

                    var admin = UtilizatorRepository.GetUtilizator(
                        UnitateRepository.GetUnitati().First(x => x.idUnitate == idUnit).idUtilizator);
                    adminEmail = admin.email;

                    Rezervari rezervare = new Rezervari();
                    rezervare.idUnitate = idUnit;
                    rezervare.idUtilizator = idUser;
                    rezervare.numarCamere = nr_camere;
                    rezervare.dataStart = data_Start.ToLocalTime();
                    rezervare.nrNopti = nr_nopti;
                    rezervare.aprobata = false;
                    rezervare.isDeleted = false;
                    context.AddToRezervari(rezervare);
                    context.SaveChanges();
                }

                client.Send_Email(fromAddress, mail, bodyEmail, fromPassword);
                client.Send_Email(fromAddress, adminEmail, bodyEmailAdmin, fromPassword);
                ResetForm();
                if (!string.IsNullOrEmpty(returnString))
                {
                    string script = "<script type=\"text/javascript\">alert('" + returnString + "');</script>";
                    ClientScript.RegisterClientScriptBlock(this.GetType(), "Alert", script);
                }
            }

            else
            {
                if (!string.IsNullOrEmpty(returnString))
                {
                    string script = "<script type=\"text/javascript\">alert('" + returnString + "');</script>";
                    ClientScript.RegisterClientScriptBlock(this.GetType(), "Alert", script);
                }
            }
        }
 public static string Bla(Rezervari rezervare)
 {
     return "Salvare efectuata cu success";
 }
        private static bool CheckIfIsAvailable(out string returnString,int idUnitate,Rezervari rezervare)
        {
            var unitate = UnitateRepository.GetUnitati().First(x => x.idUnitate == idUnitate);
            var camereRezervate = RezervareRepository.GetRezervari()
                .Where(x => x.idUnitate == idUnitate && x.isDeleted == false && x.aprobata == true && x.dataStart.AddDays(x.nrNopti) > rezervare.dataStart)
                .Sum(x => x.numarCamere);

            if (camereRezervate >= unitate.nrCamereDisp)
            {
                returnString = "Nu puteti accepta aceasta cerere,nu mai avem camere disponibile pentru acea data";
                return false;
            }

            if (camereRezervate <= rezervare.numarCamere + unitate.nrCamereDisp)
            {
                returnString = "Rezervarea a fost aprobata cu succes!";
                return true;
            }

            if (camereRezervate > rezervare.numarCamere + unitate.nrCamereDisp)
            {
                returnString = "Incercati un numar mai mic de camere";
                return false;
            }

            returnString = string.Empty;
            return false;
        }
 public static void UpdateRezervari(Rezervari rezervare, Rezervari origRezervare)
 {
     try
     {
         using (MasterEntities context = new MasterEntities())
         {
             context.Rezervari.Attach(origRezervare);
             context.ApplyCurrentValues("Rezervari", rezervare);
             context.SaveChanges();
         }
     }
     catch (Exception exc) { throw exc; }
 }
 public static string UpdateGrid(Rezervari rezervare)
 {
     var returnString = string.Empty;
     using (MasterEntities context = new MasterEntities())
     {
         var obj = context.Rezervari.ToList().First(x => x.idRezervare == rezervare.idRezervare);
         obj.tipRezervare = rezervare.tipRezervare;
         context.ApplyCurrentValues("Rezervari", obj);
         context.SaveChanges();
         returnString = "Salvare efectuata cu succes";
     }
     return returnString;
 }
        public static string Update(Rezervari rezervare)
        {
            string returnString=string.Empty;
            try
            {
                using (MasterEntities context = new MasterEntities())
                {
                    MasterWebServiceSoapClient client = new MasterWebServiceSoapClient();

                    var obj = context.Rezervari.ToList().First(x => x.idRezervare == rezervare.idRezervare);
                    if (rezervare.aprobata.Value)
                    {
                        if (CheckIfIsAvailable(out returnString, obj.idUnitate, rezervare))
                        {
                            rezervare.idUnitate = obj.idUnitate;
                            rezervare.idUtilizator = obj.idUtilizator;
                            rezervare.isDeleted = false;
                            context.ApplyCurrentValues("Rezervari", rezervare);
                            context.SaveChanges();

                            var user = UtilizatorRepository.GetUtilizator(rezervare.idUtilizator.Value);
                            var unidate = UnitateRepository.GetUnitate(rezervare.idUnitate);
                            string fromAddress = "*****@*****.**";
                            string fromPassword = "******";

                            string bodyEmail = "Stimate " + user.numeComplet + ",\n";
                            bodyEmail +=
                                    "Rezervarea dumneavoastra a fost confirmata . Va confirmam faptul ca incepand cu data de " +
                                    rezervare.dataStart + " sunteti asteptat la " + unidate.numeUnitate +
                                    ". Va reamintim ca rezervarea dumneavoastra a fost facuta pentru " + rezervare.nrNopti +
                                    " nopti si ati rezervat un numar de " + rezervare.numarCamere +
                                    " camere. Va rugam sa confirmati rezervarea in termen de 2 zile la linkul:http://localhost:50298/User/Payments.aspx?Rezervare=" + rezervare.idRezervare;
                            client.Send_Email(fromAddress, user.email, bodyEmail, fromPassword);
                        }

                        else
                        {
                            if ((int) CalculateBookingAuthorizedLevel(rezervare.dataStart, rezervare.idUnitate) >
                                RezervareRepository.GetRezervari()
                                    .Where(
                                        x =>
                                            x.idUnitate == rezervare.idUnitate && x.isDeleted == false &&
                                            x.aprobata == true && x.dataStart.AddDays(x.nrNopti) > rezervare.dataStart)
                                    .Count())
                            {
                                rezervare.idUnitate = obj.idUnitate;
                                rezervare.idUtilizator = obj.idUtilizator;
                                rezervare.isDeleted = false;
                                context.ApplyCurrentValues("Rezervari", rezervare);
                                context.SaveChanges();

                                var user = UtilizatorRepository.GetUtilizator(rezervare.idUtilizator.Value);
                                var unidate = UnitateRepository.GetUnitate(rezervare.idUnitate);
                                string fromAddress = "*****@*****.**";
                                string fromPassword = "******";

                                string bodyEmail = "Stimate " + user.numeComplet + ",\n";
                                bodyEmail +=
                                    "Rezervarea dumneavoastra a fost confirmata . Va confirmam faptul ca incepand cu data de " +
                                    rezervare.dataStart + " sunteti asteptat la " + unidate.numeUnitate +
                                    ". Va reamintim ca rezervarea dumneavoastra a fost facuta pentru " + rezervare.nrNopti +
                                    " nopti si ati rezervat un numar de " + rezervare.numarCamere +
                                    " camere. Va rugam sa confirmati rezervarea in termen de 2 zile la linkul:http://localhost:50298/User/Payments.aspx?Rezervare=" + rezervare.idRezervare;
                                client.Send_Email(fromAddress, user.email, bodyEmail, fromPassword);
                            }
                        }
                    }
                    else
                    {
                        rezervare.idUnitate = obj.idUnitate;
                        rezervare.idUtilizator = obj.idUtilizator;
                        rezervare.isDeleted = false;
                        context.ApplyCurrentValues("Rezervari", rezervare);
                        context.SaveChanges();
                    }
                }
            }
            catch (Exception exc) { throw exc; }
            return returnString;
        }