Click here to Skip to main content
15,891,704 members
Please Sign up or sign in to vote.
5.00/5 (1 vote)
Hi coder i have an application in which i have different pages

On my first page: i have form. When i enter details and click on submit button data store in database.

On my second page i have a grdiview where i can view details from database of the form I have an edit link on that when i click on edit link it will redirect to form page where submit button become updated button and user can update details.

Now what i want is after one hour of modification other user of the application get a notification on report page that updation is being done. I dont want to user sqldependency

This is form page code:
C#
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        lblFirstName.Text = Session["FirstName"].ToString();
        if (Session["portal"] != null)
        {
            ddlPortal.SelectedIndex = ddlPortal.Items.IndexOf(ddlPortal.Items.FindByValue(Convert.ToString(Session["portal"])));
        }
        if (!string.IsNullOrEmpty(Request.QueryString["buttonValue"]))
        {
            string btnValue = Request.QueryString["buttonValue"];
            if (btnValue == "Update")
            {
                btnSubmit.Text = "Update";
            }
            else if (btnValue == "Submit")
            {
                btnSubmit.Text = "Submit";
            }
            else
            {
                Response.Write("error");
            }
        }
        else
        {
            this.btnSubmit.Text = "Submit";
        }
        string ID = Request.QueryString["ID"];
        cmd = new SqlCommand("Select * from Form where ID='" + ID + "'", con);
        con.Open();
        da = new SqlDataAdapter(cmd);
        dt.Clear();
        da.Fill(dt);
        if (dt.Rows.Count > 0)
        {
            ddlPortal.SelectedValue = dt.Rows[0][2].ToString();
            tbTid.Text = dt.Rows[0][3].ToString();
            tbPNR.Text = dt.Rows[0][4].ToString();
            tbTicketNumber.Text = dt.Rows[0][5].ToString();
            tbESACCode.Text = dt.Rows[0][6].ToString();
            tbWaiverCode.Text = dt.Rows[0][7].ToString();
            tbRemarks.Text = dt.Rows[0][8].ToString();
            tbUnusedTicketAmount.Text = dt.Rows[0][9].ToString();
            ddlUnusedAmount.SelectedValue = dt.Rows[0][10].ToString();
            tbAirlinePenality.Text = dt.Rows[0][11].ToString();
            ddlAirlinePenality.SelectedValue = dt.Rows[0][12].ToString();
            tbNetRefundProcess.Text = dt.Rows[0][13].ToString();
            ddlNetRefundProcess.SelectedValue = dt.Rows[0][14].ToString();
            tbRefundableCommision.Text = dt.Rows[0][15].ToString();
            ddlRefundableCommission.SelectedValue = dt.Rows[0][16].ToString();
            tbCouponRefund.Text = dt.Rows[0][17].ToString();
            ddlRefundType.SelectedValue = dt.Rows[0][18].ToString();

        }
        con.Close();
    }
    if (ddlPortal.SelectedValue == "Select")
    {
        FirstForm.Visible = false;
    }
}
private void Submit()
{
    //store date and time on click event of button
    //DateTime clicktime = DateTime.Now;
    string d = DateTime.Now.ToString();
    using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["BartConnectionString"].ToString()))
    {
        con.Open();
        string Name = lblFirstName.Text;
        string Portal = ddlPortal.SelectedValue;
        string TID = tbTid.Text;
        string PNR = tbPNR.Text;
        string TicketNumber = tbTicketNumber.Text;
        string ESACCode = tbESACCode.Text;
        string WaiverCode = tbWaiverCode.Text;
        string Remarks = tbRemarks.Text;
        string UnusedTicketAmount = tbUnusedTicketAmount.Text;
        string UnusedAmount = ddlUnusedAmount.SelectedValue;
        string AirlinePenality = tbAirlinePenality.Text;
        string Airline = ddlAirlinePenality.SelectedValue;
        string NetRefundProcess = tbNetRefundProcess.Text;
        string NetRefund = ddlNetRefundProcess.SelectedValue;
        string RefundableCommission = tbRefundableCommision.Text;
        string Refundable = ddlRefundableCommission.SelectedValue;
        string CouponRefunded = tbCouponRefund.Text;
        string RefundType = ddlRefundType.SelectedValue;

        using (SqlCommand cmd = con.CreateCommand())
        {
            cmd.CommandText = "insert into Form(Name,Portal,TID,PNR,TicketNumber,ESACCode,WaiverCode,Remarks,UnusedTicketAmount,ddlUnusedAmount, AirlinePenality, ddlAirlinePenality, NetRefundProcess, ddlNetRefundProcess, RefundableCommission, ddlRefundableCommission, CouponRefunded,RefundType,DateTime) values('" + Name + "','" + Portal + "','" + TID + "','" + PNR + "','" + TicketNumber + "', '" + ESACCode + "', '" + WaiverCode + "', '" + Remarks + "','" + UnusedTicketAmount + "','" + UnusedAmount + "','" + AirlinePenality + "','" + Airline + "','" + NetRefundProcess + "','" + NetRefund + "','" + RefundableCommission + "','" + Refundable + "','" + CouponRefunded + "','" + RefundType + "','" + d + "')";
            cmd.Parameters.AddWithValue("@Name", lblFirstName.Text.Trim());
            cmd.Parameters.AddWithValue("@Portal", ddlPortal.SelectedIndex);
            cmd.Parameters.AddWithValue("@TID", tbTid.Text.Trim());
            cmd.Parameters.AddWithValue("@PNR", tbPNR.Text.Trim());
            cmd.Parameters.AddWithValue("@TicketNumber", tbTicketNumber.Text.Trim());
            cmd.Parameters.AddWithValue("@ESACCode", tbESACCode.Text.Trim());
            cmd.Parameters.AddWithValue("@WaiverCode", tbWaiverCode.Text.Trim());
            cmd.Parameters.AddWithValue("@Remarks", tbRemarks.Text.Trim());
            cmd.Parameters.AddWithValue("@UnusedTicketAmount", tbUnusedTicketAmount.Text.Trim());
            cmd.Parameters.AddWithValue("@ddlUnusedAmount", ddlUnusedAmount.SelectedIndex);
            cmd.Parameters.AddWithValue("@AirlinePenality", tbAirlinePenality.Text.Trim());
            cmd.Parameters.AddWithValue("@ddlAirlinePenality", ddlAirlinePenality.SelectedIndex);
            cmd.Parameters.AddWithValue("@NetRefundProcess", tbNetRefundProcess.Text.Trim());
            cmd.Parameters.AddWithValue("@ddlNetRefundProcess", ddlNetRefundProcess.SelectedIndex);
            cmd.Parameters.AddWithValue("@RefundableCommission", tbRefundableCommision.Text.Trim());
            cmd.Parameters.AddWithValue("@ddlRefundableCommission", ddlRefundableCommission.SelectedIndex);
            cmd.Parameters.AddWithValue("@CouponRefunded", tbCouponRefund.Text.Trim());
            cmd.Parameters.AddWithValue("@RefundType", ddlRefundType.SelectedIndex);
            cmd.ExecuteNonQuery();
        }
        con.Close();
        tbTid.Text = "";
        tbPNR.Text = "";
        tbTicketNumber.Text = "";
        tbESACCode.Text = "";
        tbWaiverCode.Text = "";
        tbRemarks.Text = "";
        tbRemarks.Text = "";
        tbUnusedTicketAmount.Text = "";
        tbAirlinePenality.Text = "";
        tbNetRefundProcess.Text = "";
        tbRefundableCommision.Text = "";
        tbCouponRefund.Text = "";
        lblRefundType.Text = "";
        tbTid.Focus();
    }
}
private void Update()
{
    con.Open();
    string id = Request.QueryString["ID"].ToString();
    string d = DateTime.Now.ToString();
    string query = "update Form set Portal='" + ddlPortal.SelectedValue + "',Tid='" + tbTid.Text + "',PNR='" + tbPNR.Text + "',TicketNumber='" + tbTicketNumber.Text + "',ESACCode='" + tbESACCode.Text + "',WaiverCode='" + tbWaiverCode.Text + "',Remarks='" + tbRemarks.Text + "',UnusedTicketAmount='" + tbUnusedTicketAmount.Text + "',ddlUnusedAmount='" + ddlUnusedAmount.SelectedValue + "',AirlinePenality='" + tbAirlinePenality.Text + "',ddlAirlinePenality='" + ddlAirlinePenality.SelectedValue + "',NetRefundProcess='" + tbNetRefundProcess.Text + "',ddlNetRefundProcess='" + ddlNetRefundProcess.SelectedValue + "',RefundableCommission='" + tbRefundableCommision.Text + "',ddlRefundableCommission='" + ddlRefundableCommission.SelectedValue + "',CouponRefunded='" + tbCouponRefund.Text + "',RefundType='" + ddlRefundType.SelectedValue + "',DateTime='" + d + "' where ID='" + id + "'";
    cmd = new SqlCommand(query, con);
    cmd.CommandType = CommandType.Text;
    cmd.ExecuteNonQuery();
    con.Close();
    Response.Redirect("~/Admin/PortalReport.aspx", false);
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
    if (btnSubmit.Text == "Submit")
    {
        this.Submit();
    }
    else if (btnSubmit.Text == "Update")
    {
        this.Update();
    }
}

How can i notify other user of this application that some data is updated after one hour i just want to show an message on a label may be that some data is updated to other user apart from the user that make modification

Thanks in advance !!
Posted
Updated 4-Sep-13 2:15am
v2

1 solution

If you really don't want to use SQL then I would look at AppFabric.

This is a data caching / state management toolkit that works across all servers in your farm.

This will allow you to store values in memory which can be accessed by all sessions on all servers.

You could use this to write away a flag and then check that flag periodically to see if the hour is up.

Whilst there are SQL components which can be implemented as part of AppFabric for long term data persistence. I don't think they're a requirement, they're optional extras.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900