예제 #1
0
 /// <summary>
 /// Handles command when user clicks Edit prize on prize table, or when user clicks New Prize button
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void gvPrizeList_RowCommand(object sender, CommandEventArgs e)
 {
     if (e.CommandName == "EditPrize")
     {
         string productname = e.CommandArgument.ToString();
         List <PrizeController.Prize> prizelist = PrizeController.GetPrizes();
         PrizeController.Prize        prize     = prizelist.Find(x => x.name == productname);
         mvMulti.ActiveViewIndex = 2;
         tbName.Text             = prize.name;
         lblPrizeID.Text         = prize.id;
         tbOriginalAmount.Text   = prize.originalquantity;
         tbCurrentAmount.Text    = prize.currentquantity;
         tbTip.Text           = prize.tip;
         cbIsNonPrize.Checked = Convert.ToBoolean(prize.isnonprize);
         lblImg1.Text         = prize.image1;
         lblImg2.Text         = prize.image2;
         //lblImg3.Text = prize.image3;
         imgImage1.ImageUrl = prize.image1;
         imgImage2.ImageUrl = prize.image2;
         //imgImage3.ImageUrl = prize.image3;
         btnAddNewPrize.Visible = false;
         btnDeletePrize.Visible = true;
         btnEditPrize.Visible   = true;
     }
     if (e.CommandName == "NewPrize")
     {
         mvMulti.ActiveViewIndex = 2;
         btnAddNewPrize.Visible  = true;
         btnDeletePrize.Visible  = false;
         tbName.Text             = "";
         lblPrizeID.Text         = "";
         tbTip.Text            = "";
         tbOriginalAmount.Text = "";
         tbCurrentAmount.Text  = "";
         cbIsNonPrize.Checked  = false;
         lblImg1.Text          = "";
         lblImg2.Text          = "";
         //lblImg3.Text = "";
         imgImage1.ImageUrl = "";
         imgImage2.ImageUrl = "";
         //imgImage3.ImageUrl = "";
         btnEditPrize.Visible = false;
     }
 }
예제 #2
0
    /// <summary>
    /// Deletes a prize from the JSON db & returns the user to the previous view if successful
    /// </summary>
    /// <param name="prizelist">List of Prize objects</param>
    /// <param name="id">ID of the prize to delete</param>
    public void DeletePrize(List <PrizeController.Prize> prizelist, string id)
    {
        PrizeController.Prize oldprize = prizelist.Find(x => x.id == id);
        prizelist.Remove(oldprize);
        string output = JsonConvert.SerializeObject(prizelist);

        try
        {
            File.WriteAllText(prizespath, output);
            mvMulti.ActiveViewIndex = 1;
            lblChangesSuccess.Text  = "Changes successful";
            LoadPrizeDataTable();
        }
        catch (Exception ex)
        {
            lblChanges.Text = "error";
            using (System.IO.StreamWriter file = new System.IO.StreamWriter(errorpath, true))
            {
                file.WriteLine(DateTime.Now.ToString() + " Error in Admin.aspx.cs method DeletePrize: " + ex.Message);
            }
        }
    }
예제 #3
0
    /// <summary>
    /// Handles when user clicks edit button to make changes to an existing prize or creates a new prize if there is no
    /// ID associated
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void EditPrize_OnClick(Object sender, EventArgs e)
    {
        //lets just delete existing and add new
        List <PrizeController.Prize> prizelist = PrizeController.GetPrizes();

        PrizeController.Prize newprize = new PrizeController.Prize();

        int    numprizes = prizelist.Count;
        string prizeid   = "";

        if (lblPrizeID.Text == "")
        {
            prizeid = (numprizes + 1).ToString();
        }
        else
        {
            prizeid = lblPrizeID.Text;
        }
        //save the images
        bool   isValid = true;
        string img1    = "";
        string img2    = "";

        //string img3 = "";
        try
        {
            if (fuImg1.HasFile)
            {
                string ext1 = System.IO.Path.GetExtension(fuImg1.PostedFile.FileName);
                if (ValidateImage(ext1))
                {
                    img1 = "Images/" + SaveFile(fuImg1.PostedFile, prizeid);
                }
                else
                {
                    lblChanges.Text = "Please choose only .jpg, .png and .gif image types!";
                    isValid         = false;
                }
            }
            if (fuImg2.HasFile)
            {
                string ext2 = System.IO.Path.GetExtension(fuImg2.PostedFile.FileName);
                if (ValidateImage(ext2))
                {
                    img2 = "Images/" + SaveFile(fuImg2.PostedFile, prizeid);
                }
                else
                {
                    lblChanges.Text = "Please choose only .jpg, .png and .gif image types!";
                    isValid         = false;
                }
            }
        }
        catch (Exception ex) {
            using (System.IO.StreamWriter file = new System.IO.StreamWriter(errorpath, true))
            {
                file.WriteLine(DateTime.Now.ToString() + " Error: " + ex.Message);
                isValid = false;
            }
        }

        if (isValid)
        {
            string qtygiven = "0";

            newprize.name = tbName.Text;
            //if current qty is greater than original set original to current
            if (tbCurrentAmount.Text.Trim() != "" && tbOriginalAmount.Text.Trim() != "")
            {
                if (Convert.ToInt32(tbCurrentAmount.Text) > Convert.ToInt32(tbOriginalAmount.Text))
                {
                    newprize.originalquantity = tbCurrentAmount.Text;
                    newprize.currentquantity  = tbCurrentAmount.Text;
                }
                else
                {
                    newprize.originalquantity = tbOriginalAmount.Text;
                    newprize.currentquantity  = tbCurrentAmount.Text;
                }
            }
            else
            {
                newprize.originalquantity = tbOriginalAmount.Text;
                newprize.currentquantity  = tbCurrentAmount.Text;
            }
            //if its a new prize
            if (lblPrizeID.Text == "")
            {
                newprize.id    = prizeid;
                newprize.ratio = "100";
            }
            else //if its an existing one being edited
            {
                newprize.id = prizeid;
                PrizeController.Prize oldprize = prizelist.Find(x => x.id == lblPrizeID.Text);
                //if we are changing an existing prize, but the images were not changed
                //need to keep the exising images
                if (img1 == "")
                {
                    img1 = oldprize.image1;
                }
                if (img2 == "")
                {
                    img2 = oldprize.image2;
                }
                //if (img3 == "")
                //{
                //    img3 = oldprize.image3;
                //}
                qtygiven = oldprize.quantitygiven;
                //out with the old
                prizelist.Remove(oldprize);
                //calculate the ratio of current vs original
                if (tbOriginalAmount.Text.Trim() == "" || tbOriginalAmount.Text.Trim() == "0")
                {
                    newprize.ratio = "0";
                }
                if (tbCurrentAmount.Text.Trim() == "" || tbCurrentAmount.Text.Trim() == "0")
                {
                    newprize.ratio = "0";
                }
                else
                {
                    newprize.ratio = ((Convert.ToDouble(tbCurrentAmount.Text) / Convert.ToDouble(tbOriginalAmount.Text)) * 100).ToString();
                }
            }


            newprize.isnonprize = cbIsNonPrize.Checked;
            newprize.image1     = img1;
            newprize.image2     = img2;
            //newprize.image3 = img3;
            newprize.quantitygiven = qtygiven;
            newprize.tip           = tbTip.Text;
            //in with the new
            prizelist.Add(newprize);
            string output = JsonConvert.SerializeObject(prizelist);
            try
            {
                File.WriteAllText(prizespath, output);
                mvMulti.ActiveViewIndex = 1;
                lblChangesSuccess.Text  = "Changes successful";
            }
            catch (Exception ex)
            {
                using (System.IO.StreamWriter file = new System.IO.StreamWriter(errorpath, true))
                {
                    file.WriteLine(DateTime.Now.ToString() + " Error in Admin.aspx.cs Method EditPrize_OnClick: " + ex.Message);
                }
            }
            LoadPrizeDataTable();
        }
    }