protected void btnSubmit_Click(object sender, EventArgs e)
        {
            string EVENT_TRACKER;
            string SUBFOLDER = "Main_Image";
            int    hostID    = Convert.ToInt32(Session["ID"].ToString());
            String request   = (Request.QueryString["EventID"]);

            if (request == null)
            {
                request = (Request.QueryString["ed"]);
            }
            EventServiceClient _eventClient = new EventServiceClient();
            EventModel         oldEvent     = new EventModel();

            oldEvent = _eventClient.findByEventID(request);

            //Editing  Address
            EventAddress  currentAdd = new EventAddress();
            EventAddress  Oldadd     = new EventAddress();
            MappingClient mc         = new MappingClient();

            currentAdd = mc.getAddressById(Convert.ToString(oldEvent.EventAddress));
            if (txtCountry.Text.Equals(""))
            {
                Oldadd.COUNTRY = currentAdd.COUNTRY;
            }
            else
            {
                Oldadd.COUNTRY = txtCountry.Text;
            }
            if (txtCity.Text.Equals(""))
            {
                Oldadd.CITY = currentAdd.CITY;
            }
            else
            {
                Oldadd.CITY = txtCity.Text;
            }
            if (txtStreet.Text.Equals(""))
            {
                Oldadd.STREET = currentAdd.STREET;
            }
            else
            {
                Oldadd.STREET = txtStreet.Text;
            }
            if (txtProvince.Text.Equals(""))
            {
                Oldadd.PROVINCE = currentAdd.PROVINCE;
            }
            else
            {
                Oldadd.PROVINCE = txtProvince.Text;
            }
            EventAddress newAddress = new EventAddress();

            newAddress = mc.EditAddress(Oldadd, Convert.ToString(oldEvent.EventAddress));

            EventModel _event = new EventModel();

            _event.HostID = oldEvent.HostID;
            _event.Name   = txtEventName.Text;  //Event Name
            if (chkBoxPrivate.Checked == true)  //Public or Private Event
            {
                _event.Type = "Private";
            }
            else
            {
                _event.Type = "Public";
            }
            _event.Desc = txtDesc.Text; //Event Description
            string startdate = "";
            string enddate   = "";

            //DateTime sDate = DateTime.ParseExact(startdate, "yyyy-MM-ddTHH:mm", CultureInfo.InvariantCulture);
            //DateTime eDate = DateTime.ParseExact(enddate, "yyyy-MM-ddTHH:mm", CultureInfo.InvariantCulture);
            //_event.sDate = sDate; //Event Start Date
            //_event.eDate = eDate; //Event End Date

            if (txtStart.Text.Equals(""))
            {
                _event.sDate = oldEvent.sDate;
            }
            else
            {
                // _event.sDate = DateTime.ParseExact(txtStart.Text, "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture);
                //var date = DateTime.Parse(strDate,new CultureInfo("en-US", true))
                _event.sDate = Convert.ToString(DateTime.Parse(txtStart.Text, new CultureInfo("en-US", true)));
            }
            if (txtEnd.Text.Equals(""))
            {
                _event.eDate = oldEvent.eDate;
            }
            else
            {
                //  _event.eDate = DateTime.ParseExact(txtEnd.Text, "yyyy-MM-ddTHH:mm", CultureInfo.InvariantCulture);
                _event.eDate = Convert.ToString(DateTime.Parse(txtEnd.Text, new CultureInfo("en-US", true)));
            }
            _event.EventAddress = newAddress.ID;   //Event's address ID
            //check ticket field
            if (!txtE_Quantity.Text.Equals(""))
            {
                _event.EB_Quantity = Convert.ToInt32(txtE_Quantity.Text);
            }
            else
            {
                _event.EB_Quantity = 0;
            }

            if (!txtR_Quantity.Text.Equals(""))
            {
                _event.Reg_Quantity = Convert.ToInt32(txtR_Quantity.Text);
            }
            else
            {
                _event.Reg_Quantity = 0;
            }

            if (!txtV_Quantity.Text.Equals(""))
            {
                _event.VIP_Quantity = Convert.ToInt32(txtV_Quantity.Text);
            }
            else
            {
                _event.VIP_Quantity = 0;
            }
            if (!txtVV_Quantity.Text.Equals(""))
            {
                _event.VVIP_Quantity = Convert.ToInt32(txtVV_Quantity.Text);
            }
            else
            {
                _event.VVIP_Quantity = 0;
            }
            //Edit Event Event
            EventServiceClient _editEvent = new EventServiceClient();
            EventModel         newEvent   = new EventModel();

            newEvent = _editEvent.updateEvent(_event, request);
            bool isCreatedTicket = false;   //Ticket Controller

            EVENT_TRACKER = "Event Edited successfully";
            //Import users
            //string ImportSpreadsheet = "";
            //ImportSpreadsheet = ImportData(flGuest, newEvent.EventID);

            //===================Import guest,staff and products============================//

            string         path                 = "";
            string         response             = "";
            bool           isValidGuestColumn   = false;
            bool           isValidStaffColumn   = false;
            bool           isValidProductColumn = false;
            int            startColumn          = 0;
            int            startRow             = 0;
            ExcelWorksheet GuestworkSheet       = null;
            ExcelWorksheet StaffworkSheet       = null;
            ExcelWorksheet ProductworkSheet     = null;
            int            count                = 0;

            if (flGuest.HasFile)
            {
                try
                {
                    string filename       = Path.GetFileName(flGuest.FileName);
                    string serverLocation = "~/Temp/" + "/" + filename;
                    string SaveLoc        = Server.MapPath(serverLocation);
                    flGuest.SaveAs(SaveLoc);
                    path = Server.MapPath("/") + "\\Temp\\" + filename;

                    var package = new ExcelPackage(new System.IO.FileInfo(path));
                    ////  package.Workbook.Worksheets["TABNAME"].View.TabSelected = true;
                    startColumn      = 1;                              //where the file in the class excel start
                    startRow         = 2;
                    GuestworkSheet   = package.Workbook.Worksheets[1]; //read sheet one
                    StaffworkSheet   = package.Workbook.Worksheets[2]; //read sheet two
                    ProductworkSheet = package.Workbook.Worksheets[3];

                    isValidGuestColumn   = ValidateGuestColumns(GuestworkSheet);
                    isValidStaffColumn   = ValidateStaffColumns(StaffworkSheet);
                    isValidProductColumn = ValidateProductColumns(ProductworkSheet);
                    // isValidColumn = true;
                }
                catch
                {
                    response += "Failed";
                }
                //check staff sheet
                object data = null;
                if (isValidStaffColumn == true && isValidGuestColumn == true && isValidProductColumn == true)
                {
                    do
                    {
                        data = StaffworkSheet.Cells[startRow, startColumn].Value; //column Number
                        if (data == null)
                        {
                            continue;
                        }
                        //read column class name
                        object     Name       = StaffworkSheet.Cells[startRow, startColumn].Value;
                        object     Email      = StaffworkSheet.Cells[startRow, startColumn + 1].Value;
                        object     Occupation = StaffworkSheet.Cells[startRow, startColumn + 2].Value;
                        StaffModel _staff     = new StaffModel();
                        _staff.NAME       = Name.ToString();
                        _staff.EMAIL      = Email.ToString();
                        _staff.Occupation = Occupation.ToString();
                        _staff.PASS       = "******";
                        _staff.EventID    = newEvent.EventID;
                        //edit to db
                        StaffServiceClient ssv = new StaffServiceClient();
                        bool isCreated         = ssv.createStaff(_staff);
                        if (isCreated == true)
                        {
                            count++;
                        }
                        startRow++;
                    } while (data != null);

                    data        = null;
                    startColumn = 1;  //where the file in the class excel start
                    startRow    = 2;
                    do
                    {
                        data = GuestworkSheet.Cells[startRow, startColumn].Value; //column Number
                        if (data == null)
                        {
                            continue;
                        }
                        object     Name    = GuestworkSheet.Cells[startRow, startColumn].Value;
                        object     Surname = GuestworkSheet.Cells[startRow, startColumn + 1].Value;
                        object     Email   = GuestworkSheet.Cells[startRow, startColumn + 2].Value;
                        GuestModel _guest  = new GuestModel();
                        _guest.NAME    = Name.ToString();
                        _guest.SURNAME = Surname.ToString();
                        _guest.EMAIL   = Email.ToString();
                        _guest.PASS    = "******";
                        _guest.TYPE    = "Private";
                        Eventrix_Client.Registration reg = new Eventrix_Client.Registration();
                        //   response = reg.RegisterGuest(_guest);
                        sendMsg(_guest, _event);
                        if (response.Contains("successfully"))
                        {
                            count++;
                        }
                        startRow++;
                    } while (data != null);

                    //upload product details
                    data        = null;
                    startColumn = 1;  //where the file in the class excel start
                    startRow    = 2;
                    do
                    {
                        data = ProductworkSheet.Cells[startRow, startColumn].Value; //column Number
                        if (data == null)
                        {
                            continue;
                        }
                        object       Name        = ProductworkSheet.Cells[startRow, startColumn].Value;
                        object       Description = ProductworkSheet.Cells[startRow, startColumn + 1].Value;
                        object       Quantity    = ProductworkSheet.Cells[startRow, startColumn + 2].Value;
                        object       Price       = ProductworkSheet.Cells[startRow, startColumn + 3].Value;
                        EventProduct _product    = new EventProduct();
                        _product._Name = Name.ToString();
                        //     _product._Desc = Description.ToString();
                        _product._Quantity = Convert.ToInt32(Quantity.ToString());
                        _product._Price    = Convert.ToInt32(Price.ToString());
                        _product.EventID   = newEvent.EventID;
                        ProductServiceClient psv = new ProductServiceClient();
                        //  string isProductUpdated = psv.createProduct(_product);
                        string isProductUpdated = psv.createProduct(_product);
                        if (isProductUpdated.Contains("success"))
                        {
                            count++;
                        }
                        startRow++;
                    } while (data != null);
                    //check record
                    if (count == (GuestworkSheet.Dimension.Rows - 1) + (StaffworkSheet.Dimension.Rows - 1) + (ProductworkSheet.Dimension.Rows - 1))
                    {
                        response = "success: All Records uploaded";
                    }
                    else
                    {
                        response = "success: Not All Records uploaded";
                    }
                }
                else
                {
                    response += " Failed to upload Exceel: Check columns";
                }
            }
            else
            {
                response = "Failed: File not found";
            }


            //==============================================================================//
            if (response.Contains("success"))
            {
                EVENT_TRACKER += "\n Spreadsheet Uploaded";
                //Create Tickets
                isCreatedTicket = isLoadedTicket(newEvent, newEvent.EventID);
                if (isCreatedTicket == true)
                {
                    EVENT_TRACKER += "\n Ticket Created";
                }
                else
                {
                    EVENT_TRACKER += "\n Failed to upload ticket";
                }
            }
            else
            {
                EVENT_TRACKER += "\n Spreadsheet Uploaded";
                //Create Tickets
                isCreatedTicket = isLoadedTicket(newEvent, newEvent.EventID);
                if (isCreatedTicket == true)
                {
                    EVENT_TRACKER += "\n Ticket Created";
                }
                else
                {
                    EVENT_TRACKER += "\n Failed to upload ticket";
                }
                //Unable to upload guest
                EVENT_TRACKER += "\n failed to upload spreadsheet";
            }

            ////Upload images
            ImageFile mainPic = new ImageFile();

            mainPic = UploadFile(flEventImages, Convert.ToString(newEvent.EventID), SUBFOLDER); //Upload Event Main's Image to client directory
            if (mainPic != null)
            {
                FileUploadClient fuc    = new FileUploadClient();
                string           res1   = fuc.saveImage(mainPic); //Upload Event Main's Image to Database
                string           number = res1;
            }
            Response.Redirect("EventDetails.aspx?EventID=" + newEvent.EventID);

            //  Response.Write("<script> Alert("+ EVENT_TRACKER + ");</script>");
        }
        protected void btnComing_Click(object sender, EventArgs e)
        {
            string eventID = Request.QueryString["ev"];
            int    G_ID    = Convert.ToInt32(Session["ID"]);

            EventServiceClient event_client = new EventServiceClient();

            //Update event RSVP table
            bool isRecorded = event_client.RecordRSVP(eventID, Convert.ToString(G_ID), "Confirmed");

            //Retreive event info
            EventModel newEvent     = new EventModel();
            EventModel updatedEvent = new EventModel();

            newEvent = event_client.findByEventID(eventID);

            string ticket_Type = Convert.ToString(Session["TYPE"]);
            //Create BarCode
            TicketServiceClient tsc    = new TicketServiceClient();
            EventTicket         ticket = new EventTicket();

            if (ticket_Type.ToLower().Contains("early bird") && newEvent.EB_Quantity > 0)
            {
                ticket = tsc.getEBTicket(Convert.ToString(eventID));
                newEvent.EB_Quantity = newEvent.EB_Quantity - 1;
                updatedEvent         = event_client.updateEvent(newEvent, eventID);
            }
            else
            if (ticket_Type.ToLower().Contains("regular") && newEvent.Reg_Quantity > 0)
            {
                ticket = tsc.getRegularTicket(Convert.ToString(eventID));
                newEvent.Reg_Quantity = newEvent.Reg_Quantity - 1;
                updatedEvent          = event_client.updateEvent(newEvent, eventID);
            }
            else if (ticket_Type.ToLower().Contains("vip") && newEvent.VIP_Quantity > 0)
            {
                ticket = tsc.getVIPTicket(Convert.ToString(eventID));
                newEvent.VIP_Quantity = newEvent.VIP_Quantity - 1;
                updatedEvent          = event_client.updateEvent(newEvent, eventID);
            }
            else
            if (ticket_Type.ToLower().Contains("vvip") && newEvent.VVIP_Quantity > 0)
            {
                ticket = tsc.getVVIPTicket(Convert.ToString(eventID));
                newEvent.VVIP_Quantity = newEvent.VVIP_Quantity - 1;
                updatedEvent           = event_client.updateEvent(newEvent, eventID);
            }

            //Check if tickets sstill available
            if (ticket != null)
            {
                //Purchase ticket
                ticket._GuestID = G_ID;
                int ticketID = tsc.PurchaseTicket(ticket);
                if (ticketID != 0) //successfull transaction
                {
                    QRCodeImage img = new QRCodeImage();
                    img = GenerateCode(ticket, 1, Convert.ToString(G_ID), ticketID, eventID);
                    //Send Barcode to guest
                    EmailClient emails = new EmailClient();
                    //Find guest details
                    string Name    = Convert.ToString(Session["Name"]);
                    string Surname = Convert.ToString(Session["Surname"]);
                    string Email   = Convert.ToString(Session["Email"]);
                    emails.sendMsg_TicketPurchased(Name, Email, newEvent, img, ticket);
                    Response.Redirect("EventDetails.aspx?ev=" + eventID);
                }
            }
        }
        protected void btnSave_Click1(object sender, EventArgs e)
        {
            int numTicket = Convert.ToInt32(txtQtys.Text);  // event's ticket quantity

            //edit ticket by ticket id --create new ticket with ticket
            eventID = Request.QueryString["E_ID"];
            EventTicket         EB_tickets   = new EventTicket();
            EventTicket         REG_tickets  = new EventTicket();
            EventTicket         VIP_tickets  = new EventTicket();
            EventTicket         VVIP_tickets = new EventTicket();
            TicketServiceClient tsc          = new TicketServiceClient();
            EventModel          currentEvent = new EventModel();
            EventServiceClient  esc          = new EventServiceClient();

            currentEvent = esc.findByEventID(eventID);
            EventModel newEvent = new EventModel();   //event to be updated

            //validate ticket selected
            EB_TicketID = Request.QueryString["EBT_ID"];
            if (EB_TicketID == null)
            {
                RG_TicketID = Request.QueryString["RBT_ID"];
                if (RG_TicketID == null)
                {
                    VIP_TicketID = Request.QueryString["VT_ID"];
                    if (VIP_TicketID == null)
                    {
                        VVIP_TicketID = Request.QueryString["VVT_ID"];
                        if (VVIP_TicketID == null)
                        {
                            //free event
                        }
                        else  //get vvip ticket info by ticket id
                        {
                            int currentNumTicket = currentEvent.VVIP_Quantity;
                            if (currentNumTicket >= numTicket)
                            {
                                for (int i = 0; i < numTicket; i++)
                                {
                                    VVIP_tickets           = tsc.getVIPTicket(eventID);
                                    VVIP_tickets._GuestID  = Convert.ToInt32(LoggedID);
                                    VVIP_tickets.numTicket = numTicket;
                                    int purchased_Ticket_ID;
                                    //   int purchasedTicektID = 0;
                                    purchased_Ticket_ID = tsc.PurchaseTicket(VVIP_tickets);
                                    if (purchased_Ticket_ID != 0)
                                    {
                                        purchased_Ticket_ID = Convert.ToInt32(purchased_Ticket_ID);
                                        //QR Code
                                        QRCodeImage qrCode = new QRCodeImage();
                                        qrCode = GenerateCode(VVIP_tickets, numTicket, LoggedID, purchased_Ticket_ID, eventID);
                                        //decrement ticket quantity in main event table
                                        currentEvent.VVIP_Quantity = currentNumTicket - numTicket;
                                        newEvent = esc.updateEvent(currentEvent, eventID);
                                        EmailClient emails = new EmailClient();
                                        //guest, newEvent, EventTicket,
                                        EventServiceClient EventClient = new EventServiceClient();
                                        EventModel         items       = EventClient.findByEventID(eventID);
                                        emails.sendMsg_TicketPurchased(Name, Email, items, qrCode, VVIP_tickets);
                                    }
                                }
                                Response.Redirect("EventDetails.aspx?ev=" + eventID);
                            }
                        }
                    }
                    else //get vip ticket info by ticket id
                    {
                        int currentNumTicket = currentEvent.VIP_Quantity;
                        if (currentNumTicket >= numTicket)
                        {
                            for (int i = 0; i < numTicket; i++)
                            {
                                VIP_tickets           = tsc.getVIPTicket(eventID);
                                VIP_tickets._GuestID  = Convert.ToInt32(LoggedID);
                                VIP_tickets.numTicket = numTicket;
                                int purchased_Ticket_ID;
                                //   int purchasedTicektID = 0;
                                purchased_Ticket_ID = tsc.PurchaseTicket(VIP_tickets);
                                if (purchased_Ticket_ID != 0)
                                {
                                    purchased_Ticket_ID = Convert.ToInt32(purchased_Ticket_ID);
                                    //QR Code
                                    QRCodeImage qrCode = new QRCodeImage();
                                    qrCode = GenerateCode(VIP_tickets, numTicket, LoggedID, purchased_Ticket_ID, eventID);
                                    //decrement ticket quantity in main event table
                                    currentEvent.VIP_Quantity = currentNumTicket - numTicket;
                                    newEvent = esc.updateEvent(currentEvent, eventID);
                                    EmailClient emails = new EmailClient();
                                    //guest, newEvent, EventTicket,
                                    EventServiceClient EventClient = new EventServiceClient();
                                    EventModel         items       = EventClient.findByEventID(eventID);
                                    emails.sendMsg_TicketPurchased(Name, Email, items, qrCode, VIP_tickets);
                                }
                            }
                            Response.Redirect("EventDetails.aspx?ev=" + eventID);
                        }
                    }
                }
                else  //get regular ticket info by ticket id
                {
                    int currentNumTicket = currentEvent.Reg_Quantity;
                    if (currentNumTicket >= numTicket)
                    {
                        for (int i = 0; i < numTicket; i++)
                        {
                            REG_tickets           = tsc.getRegularTicket(eventID);
                            REG_tickets._GuestID  = Convert.ToInt32(LoggedID);
                            REG_tickets.numTicket = numTicket;
                            int purchased_Ticket_ID = 0;
                            //   int purchasedTicektID = 0;
                            purchased_Ticket_ID = tsc.PurchaseTicket(REG_tickets);
                            if (purchased_Ticket_ID != 0)
                            {
                                //QR Code
                                QRCodeImage qrCode = new QRCodeImage();
                                qrCode = GenerateCode(REG_tickets, numTicket, LoggedID, purchased_Ticket_ID, eventID);
                                //decrement ticket quantity in main event table
                                currentEvent.Reg_Quantity = currentNumTicket - numTicket;
                                newEvent = esc.updateEvent(currentEvent, eventID);

                                EmailClient emails = new EmailClient();
                                //guest, newEvent, EventTicket,
                                EventServiceClient EventClient = new EventServiceClient();
                                EventModel         items       = EventClient.findByEventID(eventID);
                                emails.sendMsg_TicketPurchased(Name, Email, items, qrCode, REG_tickets);
                            }
                        }
                        Response.Redirect("EventDetails.aspx?ev=" + eventID);
                    }
                }
            }
            else //get early bird ticket info by ticket id
            {
                int currentNumTicket = currentEvent.EB_Quantity;
                if (currentNumTicket >= numTicket)
                {
                    for (int i = 0; i < numTicket; i++)
                    {
                        EB_tickets           = tsc.getEBTicket(eventID);
                        EB_tickets._GuestID  = Convert.ToInt32(LoggedID);
                        EB_tickets.numTicket = numTicket;
                        int purchased_Ticket_ID;
                        //   int purchasedTicektID = 0;
                        purchased_Ticket_ID = tsc.PurchaseTicket(EB_tickets);
                        if (purchased_Ticket_ID != 0)
                        {
                            purchased_Ticket_ID = Convert.ToInt32(purchased_Ticket_ID);
                            //QR Code
                            QRCodeImage qrCode = new QRCodeImage();
                            qrCode = GenerateCode(EB_tickets, numTicket, LoggedID, purchased_Ticket_ID, eventID);
                            //decrement ticket quantity in main event table
                            FileUploadClient fuc = new FileUploadClient();

                            currentEvent.EB_Quantity = currentNumTicket - numTicket;
                            newEvent = esc.updateEvent(currentEvent, eventID);
                            EmailClient emails = new EmailClient();
                            //guest, newEvent, EventTicket,
                            EventServiceClient EventClient = new EventServiceClient();
                            EventModel         items       = EventClient.findByEventID(eventID);
                            emails.sendMsg_TicketPurchased(Name, Email, items, qrCode, EB_tickets);
                        }
                    }

                    Response.Redirect("EventDetails.aspx?ev=" + eventID);
                }
                else
                {
                    //sold out
                }
            }
        }