Hi code guru's,
I'm new to WCF and WF while walk through some of interesting new technologies in Asp.net. I found WCF and WF, so began to implement in my live project.
After successive practice of WCF and WF individually, I tried to combine it together but I got some error. Please someone help me to get out of it, I've given my error code below.
Further, Is my way correct or is there any other way to communicate between these two?
MY ERROR is I couldn't pass values from WF to business layer to perform operations which I called
my UI PAGE CODES;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TimeOBJ25_10;
using WF_30;
using System.Workflow;
using System.Workflow.Activities;
using System.Workflow.Runtime;
using System.Workflow.ComponentModel;
using System.Workflow.Runtime.Hosting;
using System.Threading;
using System.Workflow.Runtime.Configuration;
using System.Workflow.Activities.Design;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;
public partial class EmpStatus_1 : System.Web.UI.Page
{
DateTime ctime;
protected void Page_Load(object sender, EventArgs e)
{
ctime = System.DateTime.Now;
lblDate.Text = ctime.ToString("dd-MM-yyyy");
lblInTime.Text = ctime.ToLongTimeString();
lblOutTime.Text = ctime.ToLongTimeString();
}
protected void btnSubmit_Click1(object sender, EventArgs e)
{
using (WorkflowRuntime wr = new WorkflowRuntime())
{
List<ServiceEndpoint> eps = new List<ServiceEndpoint>();
Binding b = new WSHttpBinding();
EndpointAddress ea = new EndpointAddress("http://localhost:2819/Service1.svc");
ChannelFactory<WF_30.ServiceReference1.TimeSevice> ch = new ChannelFactory<WF_30.ServiceReference1.TimeSevice>(b, ea);
eps.Add(ch.Endpoint);
ChannelManagerService chs = new ChannelManagerService(eps);
wr.AddService(chs);
EmployeeStatus obj = new EmployeeStatus();
obj.EmpId = Convert.ToInt16(txtEmpId.Text);
obj.EmpName = txtName.Text;
obj.Designation = txtDesc.Text;
obj.CDate = ctime;
obj.InTime = DateTime.Parse(lblInTime.Text);
obj.OutTime = DateTime.Parse(lblOutTime.Text);
obj.ProjectName = ddlProject.SelectedItem.Text;
obj.DurationFrom = DateTime.Parse(txtDurationFrom.Text);
obj.DurationTo = DateTime.Parse(txtDurationTo.Text);
obj.Createddate = ctime;
obj.Modifieddate = ctime;
obj.Createdby = txtName.Text;
obj.Modifiedby = "";
}
}
}
my BUSINESS ACCESS LAYER CODES
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Transactions;
using TimeDAL25_10;
using TimeOBJ25_10;
namespace TimeBL25_10
{
public class EmpStatusBL
{
int res1=0;
int res=0;
public int StatusInsert(EmployeeStatus es)
{
using (TransactionScope scop = new TransactionScope(TransactionScopeOption.Required))
{
EmpstatusDal da = new EmpstatusDal();
da.insertstatus(es, res1);
scop.Complete();
}
return res;
}
}
}
MY DATA ACCESS LAYER CODES
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Data.Sql;
using TimeOBJ25_10;
namespace TimeDAL25_10
{
public class EmpstatusDal:SqlConfiguration
{
public int insertstatus(EmployeeStatus es, int result)
{
using (SqlConnection conn=createconnection())
{
using (SqlCommand cmd=new SqlCommand("EmployeeStatus",conn))
{
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@EmpId", es.EmpId);
cmd.Parameters.AddWithValue("@EmpName", es.EmpName);
cmd.Parameters.AddWithValue("@Designation", es.Designation);
cmd.Parameters.AddWithValue("@CDate", es.CDate);
cmd.Parameters.AddWithValue("@InTime", es.InTime);
cmd.Parameters.AddWithValue("@outTime", es.OutTime);
cmd.Parameters.AddWithValue("@ProjectName", es.ProjectName);
cmd.Parameters.AddWithValue("@DurationFrom", es.DurationFrom);
cmd.Parameters.AddWithValue("@DurationTo", es.DurationTo);
cmd.Parameters.AddWithValue("@Createddate", es.Createddate);
cmd.Parameters.AddWithValue("@Modifieddate", es.Modifieddate);
cmd.Parameters.AddWithValue("@Createdby", es.Createdby);
cmd.Parameters.AddWithValue("@Modifiedby", es.Modifiedby);
TimeSQLCommand.OpenConnection(cmd);
result = cmd.ExecuteNonQuery();
}
}
return result;
}
}
}
MY WF CODES
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Collections;
using System.Drawing;
using System.Linq;
using System.Workflow.ComponentModel.Compiler;
using System.Workflow.ComponentModel.Serialization;
using System.Workflow.ComponentModel;
using System.Workflow.ComponentModel.Design;
using System.Workflow.Runtime;
using System.Workflow.Activities;
using System.Workflow.Activities.Rules;
namespace WF_30
{
public sealed partial class Workflow1 : SequentialWorkflowActivity
{
public Workflow1()
{
InitializeComponent();
}
public static DependencyProperty sendActivity1__ReturnValue_1Property = DependencyProperty.Register("sendActivity1__ReturnValue_1", typeof(System.Int32), typeof(WF_30.Workflow1));
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
[BrowsableAttribute(true)]
[CategoryAttribute("Parameters")]
public Int32 sendActivity1__ReturnValue_1
{
get
{
return ((int)(base.GetValue(WF_30.Workflow1.sendActivity1__ReturnValue_1Property)));
}
set
{
base.SetValue(WF_30.Workflow1.sendActivity1__ReturnValue_1Property, value);
}
}
private void codeActivity1_ExecuteCode(object sender, EventArgs e)
{
sendActivity1__ReturnValue_1 = 1;
}
}
}
Advance thanks.