Beispiel #1
0
 /// <summary>
 ///     Fired when the event director triggers an event because it rolled the dice and hit it or it was forcefully
 ///     triggered by some method under a defined condition.
 /// </summary>
 /// <param name="simEntity">The sim Entity.</param>
 /// <param name="directorEvent">The director Event.</param>
 private void Director_OnEventTriggered(IEntity simEntity, EventProduct directorEvent)
 {
     // Attached the random event state when we intercept an event it would like us to trigger.
     UserData.DirectorEvent = directorEvent;
     UserData.SourceEntity  = simEntity;
     SetForm(typeof(EventExecutor));
 }
        public HttpResponseMessage UpdateEventProduct(EventProduct updateRecord)
        {
            try
            {
                ServicePointManager.Expect100Continue = true;
                ServicePointManager.SecurityProtocol  = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11;

                if (updateRecord == null)
                {
                    return(new HttpResponseMessage(HttpStatusCode.BadRequest));
                }

                // Update the EventProduct record in the Azure SQL DB:
                int eventProductResult = _eventProductWorker.UpdateCreate(updateRecord);
                if (eventProductResult > 0)
                {
                    return(new HttpResponseMessage(HttpStatusCode.OK));
                }
                // Existed already:
                else if (eventProductResult == 0)
                {
                    return(new HttpResponseMessage(HttpStatusCode.OK));
                }

                return(new HttpResponseMessage(HttpStatusCode.OK));
            }
            catch (Exception e)
            {
                return(new HttpResponseMessage(HttpStatusCode.BadRequest));
            }
        }
Beispiel #3
0
        private static void GenEventProduct(long productionID, short prevQuantity, RosieEvent rosieEvent)
        {
            EventProduct eventProduct = new EventProduct();

            eventProduct.ProductionId = productionID;
            eventProduct.EventId      = rosieEvent.Id;
            eventProduct.Quantity     = (short)Faker.RandomNumber.Next(0, prevQuantity);
            eventProduct.Create();
        }
Beispiel #4
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool Edit(EventProduct model)
        {
            if (model == null)
            {
                return(false);
            }
            using (EventProductDAL dal = new EventProductDAL())
            {
                CTMS_EVENTPRODUCT entitys = ModelToEntity(model);

                return(dal.Edit(entitys));
            }
        }
Beispiel #5
0
        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public string Add(EventProduct model)
        {
            if (model == null)
            {
                return(string.Empty);
            }

            using (EventProductDAL dal = new EventProductDAL())
            {
                CTMS_EVENTPRODUCT entity = ModelToEntity(model);
                entity.EVENTPRODUCTID = string.IsNullOrEmpty(model.EventProductId) ? Guid.NewGuid().ToString() : model.EventProductId;

                return(dal.Add(entity));
            }
        }
        internal static void UpdateProductsFromEventProduct(EventProduct eventProduct, PaymentContext context)
        {
            // get the list of all Products associated with this record
            var products = context.Product.Where(p => p.EventProductId == eventProduct.EventProductId && p.StateCode == 0).ToList();

            // update their amount fields
            foreach (var curProduct in products)
            {
                curProduct.AmountNonreceiptable = eventProduct.AmountNonReceiptable ?? 0;
                curProduct.AmountReceipted      = eventProduct.AmountReceipted ?? 0;
                curProduct.SyncDate             = null;
                context.Update(curProduct);
            }

            context.SaveChanges();
        }
        public IHttpActionResult Get(string epid, string pid)
        {
            try
            {
                EventProductBLL epdBLL = new EventProductBLL();

                EventProduct model = epdBLL.Get(p => p.EVENTPRODUCTID.Equals(epid) && p.PRODUCTID.Equals(pid));
                model.IsAlreadyBuy = "1";
                epdBLL.Edit(model);

                return(Ok("ok"));
            }
            catch (Exception ex)
            {
                LogService.WriteErrorLog("DoTreatmentController[Post]", ex.ToString());
                return(BadRequest(ex.ToString()));
            }
        }
Beispiel #8
0
 public string createProduct(EventProduct product)
 {
     try
     {
         using (EventrixDBDataContext dbd = new EventrixDBDataContext())
         {
             int isAvail = (from eh in dbd.Products where eh.eventid.Equals(product.EventID) && eh.P_Name.Equals(product._Name) select eh).Count();
             if (isAvail == 0)
             {
                 Product _host = new Product()
                 {
                     P_Name               = product._Name,
                     P_Description        = product._Desc,
                     P_Quantity           = product._Quantity,
                     P_Price              = product._Price,
                     eventid              = product.EventID,
                     P_Quantity_Remaining = product._Quantity,
                 };
                 dbd.Products.InsertOnSubmit(_host);
                 dbd.SubmitChanges();
                 return("success");
             }
             else //edit existing record
             {
                 int     _id        = Convert.ToInt32(product._ID);
                 Product pro        = dbd.Products.Single(p => p.eventid == product.EventID && p.P_Name.Equals(product._Name));
                 Product _createNew = new Product();
                 pro.P_Name               = product._Name;
                 pro.P_Description        = product._Desc;
                 pro.P_Quantity           = product._Quantity;
                 pro.P_Price              = product._Price;
                 pro.P_Quantity_Remaining = product._Quantity;
                 //    pro.eventid = _product.EventID;
                 //  mde.Products.InsertOnSubmit(_createNew);
                 dbd.SubmitChanges();
                 return("success");
             }
         };
     }
     catch (Exception)
     {
         return("fail");
     }
 }
 //EditProduct
 public bool EditProduct(EventProduct _product)
 {
     try
     {
         DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(EventProduct));
         MemoryStream mem = new MemoryStream();
         ser.WriteObject(mem, _product);
         string    data      = Encoding.UTF8.GetString(mem.ToArray(), 0, (int)mem.Length);
         WebClient webclient = new WebClient();
         webclient.Headers["Content-type"] = "application/json";
         webclient.Encoding = Encoding.UTF8;
         string res = webclient.UploadString(BASE_URL + "EditProduct", "PUT", data);
         return(true);
     }
     catch
     {
         return(false);
     }
 }
Beispiel #10
0
        /// <summary>
        /// Model转Entity
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        private CTMS_EVENTPRODUCT ModelToEntity(EventProduct model)
        {
            if (model != null)
            {
                var entity = new CTMS_EVENTPRODUCT()
                {
                    EVENTPRODUCTID = model.EventProductId,
                    EVENTID        = model.EventId,
                    PRODUCTID      = model.ProductID,
                    PRODUCTNAME    = model.ProductName,
                    PRODUCTPRICE   = model.ProductPrice,
                    PRODUCTDES     = model.ProductDes,
                    ISALREADYBUY   = model.IsAlreadyBuy
                };

                return(entity);
            }
            return(null);
        }
        internal static List <EventPackage> GetEventPackagesFromEventProduct(EventProduct eventProduct, IPaymentContext context)
        {
            var eventPackages = new List <EventPackage>();

            // get the list of all Products associated with this record
            var products = context.Product.Where(t => t.EventProductId == eventProduct.EventProductId && t.StateCode == 0).ToList();

            // get Event Packages from the Products
            foreach (var curProduct in products)
            {
                if (curProduct.EventPackageId.HasValue)
                {
                    var curEventPackages =
                        context.EventPackage.Where(e => e.EventPackageId == curProduct.EventPackageId && e.StateCode == 0).Distinct().ToList();
                    eventPackages.AddRange(curEventPackages);
                }
            }
            return(eventPackages);
        }
Beispiel #12
0
        /// <summary>
        /// Entity转Model
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        private EventProduct EntityToModel(CTMS_EVENTPRODUCT entity)
        {
            if (entity != null)
            {
                var model = new EventProduct()
                {
                    EventProductId = entity.EVENTPRODUCTID,
                    EventId        = entity.EVENTID,
                    ProductID      = entity.PRODUCTID,
                    ProductName    = entity.PRODUCTNAME,
                    ProductPrice   = entity.PRODUCTPRICE,
                    ProductDes     = entity.PRODUCTDES,
                    IsAlreadyBuy   = entity.ISALREADYBUY
                };

                return(model);
            }
            return(null);
        }
Beispiel #13
0
        private void addNewSaleProduct()
        {
            SaleProduct newSaleProduct = new SaleProduct();

            newSaleProduct.SaleId         = SaleID;
            newSaleProduct.SaleQuantity   = int.Parse(ndpQuanitity.Value.ToString());
            newSaleProduct.SalePrice      = Double.Parse(lblItemPrice.Text.Substring(1));
            newSaleProduct.EventProductId = long.Parse(DBMethod.GetSelectedItemID(cmbProduct));
            DBConnector conn = new DBConnector(Classes.DBMethod.GetConnectionString());

            RosieEntity.Connector = conn;
            newSaleProduct.Create();
            //
            EventProduct eventProduct = new EventProduct();

            conn = new DBConnector(Classes.DBMethod.GetConnectionString());
            RosieEntity.Connector = conn;
            eventProduct.Id       = long.Parse(DBMethod.GetSelectedItemID(cmbProduct));
            eventProduct.UpdateQuantity(null, ndpQuanitity.Value.ToString());
        }
Beispiel #14
0
 private void cmbProduct_SelectedIndexChanged(object sender, EventArgs e)
 {
     try
     {
         DBConnector conn = new DBConnector(Classes.DBMethod.GetConnectionString());
         RosieEntity.Connector = conn;
         EventProduct product = EventProduct.Retrieve(short.Parse(DBMethod.GetSelectedItemID(cmbProduct)));
         ndpQuanitity.Maximum = product.Quantity - product.SoldQuantity;
         //
         conn = new DBConnector(Classes.DBMethod.GetConnectionString());
         RosieEntity.Connector = conn;
         Production production = Production.Retrieve(product.ProductionId);
         //
         conn = new DBConnector(Classes.DBMethod.GetConnectionString());
         RosieEntity.Connector = conn;
         ProductItem productItem = ProductItem.Retrieve(production.ProductItemID);
         lblItemPrice.Text  = productItem.Price.ToString("C");
         ndpQuanitity.Value = 1;
     }
     catch (Exception ex)
     { }
 }
        public void Get()
        {
            EventProduct eventProduct = DataRepository.EventProduct.Get(1, 1);

            Assert.AreEqual(10, eventProduct.DiscountRate);
        }
Beispiel #16
0
        public bool SaveUserApply(UserApply model)
        {
            using (var context = new CRDatabase())
            {
                //根据model的NextCurrentNode字段来判断是否有选择
                //if (model.NextCurrentNode == "") //当为空的时候,默认就更新几个字段
                //{
                //    var entity = context.CTMS_USERAPPLY.FirstOrDefault(p => p.APPLYID == oldApplyId);
                //    entity.DOCTORSUGGEST = model.DOCTORSUGGEST;
                //    return context.SaveChanges() > 0;
                //}
                //else
                //{
                UserInfo currentUser = new UserInfoService().GetCurrentUser();

                UserEventBLL ueBll   = new UserEventBLL();
                UserEvent    ueModel = new UserEvent();

                UserEvent oldEvent = ueBll.Get(p => p.EVENTID == model.EventId);

                //更新原先的待办信息
                ueBll.CloseEvent(model.EventId);

                var entity = context.CTMS_USERAPPLY.FirstOrDefault(p => p.APPLYID == model.APPLYID);
                entity.STATUS = ((int)ActionStatus.Complete).ToString();

                var addModel = new CTMS_USERAPPLY();
                addModel.ID            = Guid.NewGuid().ToString();
                addModel.APPLYID       = model.APPLYID;
                addModel.USERID        = entity.USERID;
                addModel.GUIDELINEID   = entity.GUIDELINEID;
                addModel.CURRENTNODE   = model.NextCurrentNode;
                addModel.STATUS        = ((int)ActionStatus.Progress).ToString();
                addModel.DOCTORSUGGEST = model.DOCTORSUGGEST;
                addModel.ENTRYDATE     = model.ENTRYDATE;
                addModel.EXITDATE      = model.EXITDATE;
                addModel.ISDELETED     = false;

                context.CTMS_USERAPPLY.Add(addModel);

                //发送待办任务
                CancerUserInfoRepository _repository = new CancerUserInfoRepository();
                HR_CNR_USER user = _repository.FindOne(p => p.USERID == entity.USERID);
                ueModel.EventID = Guid.NewGuid().ToString();
                string userEventId = ueModel.EventID;
                ueModel.UserApplyId  = addModel.ID;
                ueModel.ActionType   = "1";
                ueModel.ActionInfo   = "您收到了Doc医生的建议,请查看";// + model.NextCurrentNodeName;
                ueModel.ReceiptTime  = System.DateTime.Now;
                ueModel.ActionStatus = ((int)ActionStatus.Progress).ToString();
                ueModel.FromUser     = currentUser.UserId;
                ueModel.ToUser       = entity.USERID;
                ueModel.CreateTime   = System.DateTime.Now;
                ueModel.LinkUrl      = "DoTreatmentView"; //用户待办界面
                ueModel.ModelId      = oldEvent.ModelId;

                ueBll.AddUserEvent(ueModel);

                #region 推荐产品与待办关联
                string _guidID = model.NextCurrentNode == "" ? model.CURRENTNODE : model.NextCurrentNode;
                GuidelineProductBLL            gpBLL    = new GuidelineProductBLL();
                IEnumerable <GuidelineProduct> products = gpBLL.GetList(p => p.GUIDELINEID.Equals(_guidID));
                EventProductBLL epdBLL = new EventProductBLL();
                foreach (GuidelineProduct item in products)
                {
                    EventProduct eventProduct = new EventProduct();
                    eventProduct.EventId      = ueModel.EventID;
                    eventProduct.ProductID    = item.ProductId;
                    eventProduct.ProductName  = item.ProductName;
                    eventProduct.ProductPrice = item.ProductPrice;
                    eventProduct.ProductDes   = item.Productdes;
                    eventProduct.IsAlreadyBuy = "0";

                    epdBLL.Add(eventProduct);
                }
                #endregion

                #region 发送客服待办
                ueModel              = new UserEvent();
                ueModel.EventID      = Guid.NewGuid().ToString();
                ueModel.UserApplyId  = addModel.ID;
                ueModel.ActionType   = "1";
                ueModel.ActionInfo   = string.Format("{0}收到了{1}对于病例的处理建议,请跟踪", user.USERNAME, currentUser.LoginName);
                ueModel.ReceiptTime  = System.DateTime.Now;
                ueModel.ActionStatus = ((int)ActionStatus.Progress).ToString();
                ueModel.FromUser     = currentUser.UserId;
                var toUserId = context.CTMS_SYS_USERINFO.FirstOrDefault(p => p.USERTYPE == (decimal)UserType.客服);
                ueModel.ToUser     = toUserId.USERID;
                ueModel.CreateTime = System.DateTime.Now;
                ueModel.LinkUrl    = "ServiceTask"; //客服待办
                ueModel.Remarks    = userEventId;
                ueModel.ModelId    = oldEvent.ModelId;
                ueBll.AddUserEvent(ueModel);
                #endregion

                return(context.SaveChanges() > 0);
                //}
            }
        }
Beispiel #17
0
        public async Task BankRunAppSelector(string selectedProcess, Guid?bankRunGUID, Guid?entityId, string entityName)
        {
            logger.LogInformation("----------Entering BankRunAppSelector()----------");


            try
            {
                #region Bank Run Generate List
                // ----------Bank Run Generate List----------
                if (selectedProcess.Equals("List"))
                {
                    BankRun bankRunEntity = BankRunFileReport.GetBankRunEntityFromId(bankRunGUID, this.context);

                    if (bankRunEntity == null)
                    {
                        logger.LogInformation("Exiting web job.");
                        return;
                    }

                    // Assign the payment schedules to the bank run:
                    BankRunGenerateList.GetPaymentSchedulesForBankRun(bankRunEntity, context, this.logger);
                    // Now do the same for one off transactions (TODO in future sprint).

                    try
                    {
                        // Update the Bankrun Status to "Report Available" (844060004):
                        BankRun bankRunToUpdate = new BankRun();
                        bankRunToUpdate.BankRunId     = bankRunEntity.BankRunId;
                        bankRunToUpdate.BankRunStatus = 844060004;
                        logger.LogInformation("Updating BankRun Status.");
                        await this.xrmService.UpdateAsync(bankRunToUpdate);

                        logger.LogInformation("Updated BankRun Status to \"Report Available\" successfully.");
                    }
                    catch (Exception ex)
                    {
                        logger.LogError("Could not Update Bank Run Status. Exception:" + ex.Message);
                    }
                }
                #endregion
                #region Bank Run Generate File
                // ----------Bank Run Generate File----------
                else if (selectedProcess.Equals("File"))
                {
                    BankRun bankRunEntity = BankRunFileReport.GetBankRunEntityFromId(bankRunGUID, this.context);
                    //Configuration configEntity = Common.GetConfigurationEntityFromId(configGuid, this.DataContext);
                    PaymentProcessor paymentProcessorEntity = BankRunFileReport.GetPaymentProcessorEntityFromBankRun(bankRunEntity, this.context, this.logger);
                    PaymentMethod    paymentMethodEntity    = BankRunFileReport.GetPaymentMethodEntityFromBankRun(bankRunEntity, this.context, this.logger);

                    int?bankRunFileFormat = paymentProcessorEntity.BankRunFileFormat;
                    logger.LogInformation("Requested Bank Run File Format:" + bankRunFileFormat);

                    BankRunFileReport bankRunFileReport;
                    switch (bankRunFileFormat)
                    {
                    case (int)BankRunFileFormat.ABA:
                        bankRunFileReport = new AbaFileReport(bankRunEntity, paymentProcessorEntity, paymentMethodEntity, this.context, this.logger);
                        break;

                    case (int)BankRunFileFormat.BMO:
                        bankRunFileReport = new BMOFileReport(bankRunEntity, paymentProcessorEntity, paymentMethodEntity, this.context, this.logger);
                        break;

                    case (int)BankRunFileFormat.ScotiaBank:
                        bankRunFileReport = new ScotiaBankFileReport(bankRunEntity, paymentProcessorEntity, paymentMethodEntity, this.context, this.logger);
                        break;

                    case null:
                        throw new Exception("No Bank Run File Format set on the Payment Processor with ID:" + paymentProcessorEntity.PaymentProcessorId);

                    default:
                        throw new Exception("Can't find Bank Run File Format for provided value:" + bankRunFileFormat);
                    }

                    await bankRunFileReport.GenerateFileReport();

                    await bankRunFileReport.SaveReport();
                }
                #endregion
                #region Bank Run Generate Recurring Donation Records
                else if (selectedProcess.Equals("GenerateTransactions"))
                {
                    BankRun bankRunEntity = BankRunFileReport.GetBankRunEntityFromId(bankRunGUID, this.context);
                    BankRunRecurringDonations.GenerateBankRunRecurringDonations(bankRunEntity, this.context, this.logger);
                }
                #endregion

                #region Event Receipting
                else if (selectedProcess.Equals("EventReceipting") && entityId.HasValue)
                {
                    List <EventPackage> eventPackages = new List <EventPackage>();
                    switch (entityName)
                    {
                    case EventReceipting.EventTicket:
                        EventTicket eventTicket = EventReceipting.GetEventTicketFromId(entityId.Value, this.context);
                        EventReceipting.UpdateTicketsFromEventTicket(eventTicket, this.context);
                        eventPackages = EventReceipting.GetEventPackagesFromEventTicket(eventTicket, this.context);
                        break;

                    case EventReceipting.EventProduct:
                        EventProduct eventProduct = EventReceipting.GetEventProductFromId(entityId.Value, this.context);
                        EventReceipting.UpdateProductsFromEventProduct(eventProduct, this.context);
                        eventPackages = EventReceipting.GetEventPackagesFromEventProduct(eventProduct, this.context);
                        break;

                    case EventReceipting.EventSponsorship:
                        EventSponsorship eventSponsorship = EventReceipting.GetEventSponsorshipFromId(entityId.Value, this.context);
                        EventReceipting.UpdateSponsorshipsFromEventSponsorship(eventSponsorship, this.context);
                        eventPackages = EventReceipting.GetEventPackagesFromEventSponsorship(eventSponsorship, this.context);
                        break;

                    default:
                        throw new Exception("Unknown Entity for Event Receipting: " + entityName + ". Exiting.");
                    }

                    EventReceipting.UpdateEventPackages(eventPackages, this.context);
                }

                #endregion
            }
            catch (Exception e)
            {
                logger.LogError("Error in BankRunAppSelector(): " + e.Message);
                if (e.InnerException != null)
                {
                    logger.LogError("Inner exception: " + e.InnerException.ToString());
                }
            }

            logger.LogInformation("----------Exiting BankRunAppSelector()----------");
            logger.LogInformation("----------Exiting Web Job----------");
        }
        string ImportData(FileUpload flInfo, int EventID)
        {
            string         path                 = "";
            string         response             = "";
            bool           isValidGuestColumn   = false;
            bool           isValidStaffColumn   = false;
            bool           isValidProductColumn = false;
            int            startColumn;
            int            startRow;
            ExcelWorksheet GuestworkSheet;
            ExcelWorksheet StaffworkSheet;
            ExcelWorksheet ProductworkSheet;
            int            count = 0;

            if (flInfo.HasFile)
            {
                try
                {
                    string filename       = Path.GetFileName(flInfo.FileName);
                    string serverLocation = "~/Temp/" + "/" + filename;
                    string SaveLoc        = Server.MapPath(serverLocation);
                    flInfo.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";
                    return(response);
                }
                //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    = 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);
                        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   = 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";
            }

            //Directory.Delete(path, true);
            return(response);
        }
        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>");
        }
        string ImportData(FileUpload flInfo, int EventID, EventModel _event)
        {
            string         path                 = "";
            string         response             = "";
            bool           isValidGuestColumn   = false;
            bool           isValidStaffColumn   = false;
            bool           isValidProductColumn = false;
            int            startColumn;
            int            startRow;
            ExcelWorksheet GuestworkSheet;
            ExcelWorksheet StaffworkSheet;
            ExcelWorksheet ProductworkSheet;
            int            count = 0;

            if (flInfo.HasFile)
            {
                try
                {
                    string filename       = Path.GetFileName(flInfo.FileName);
                    string serverLocation = "~/temp/" + "/" + filename;
                    string SaveLoc        = Server.MapPath(serverLocation);
                    flInfo.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";
                    return(response);
                }
                //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    = EventID;
                        //import db
                        Eventrix_Client.Registration reg = new Eventrix_Client.Registration();
                        response = reg.RegisterStaff(_staff);
                        if (response.Contains("successfully"))
                        {
                            count++;
//====================-----------Send Email TO Staff-----------------=====================================//


//=========================================================================================================//
                        }
                        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;
                        object     Tyicket_Type = GuestworkSheet.Cells[startRow, startColumn + 3].Value;
                        GuestModel _guest       = new GuestModel();
                        _guest.NAME    = Name.ToString();
                        _guest.SURNAME = Surname.ToString();
                        _guest.EMAIL   = Email.ToString();
                        _guest.PASS    = "******";
                        _guest.TYPE    = Tyicket_Type.ToString();

                        Eventrix_Client.Registration reg = new Eventrix_Client.Registration();
                        int G_ID = reg.RegisterGuest(_guest);
                        //Generate OTP
                        string pass = genCode(Convert.ToString(G_ID));
                        //HashPass
                        GuestModel gWithPass = new GuestModel();
                        gWithPass.PASS = pass;
                        response       = reg.InsertOTP(gWithPass, Convert.ToString(G_ID));
                        //  response = reg.RegisterGuest(_guest);
                        if (G_ID != -1)
                        {
                            count++;
//====================-----------Send Invitation Email-----------------=====================================//

                            EmailClient email = new EmailClient();
                            email.sendMsgInvite(_guest, _event, pass, EventID);

//=========================================================================================================//
                        }
                        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.ProdRemaining = Convert.ToInt32(Quantity.ToString());
                        _product._Price        = Convert.ToInt32(Price.ToString());
                        _product.EventID       = EventID;
                        ProductServiceClient psv = new ProductServiceClient();
                        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";
            }

            return(response);
        }