Here is my save method in ts file:
SaveProject() {
this.project.ProjectId = 0;
this.project.ProjectManager = parseInt(this._ProjectManager.toString());
this.project.ProjectLeader = parseInt(this._ProjectLeader.toString());
this.project.ClientId = parseInt(this._Client.toString());
this.project.ProjectType = parseInt(this._ProjectType.toString());
if (this.validateModel())
this.projectService.SaveProject(this.project)
.subscribe(
empList => { this.returnProject = empList; this.showSuccess(); this.GetProjectList(); this.clear(); },
error => { this.errorMessage = <any>error; alert(error); });
}
Service File
SaveProject(project: Project): Observable<Project> {
let bodyString = JSON.stringify(project);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
console.log(bodyString);
return this.http.post(this.rootUrl + '/SaveProject', bodyString, options)
.map((res: Response) => res.json())
.catch((error: any) => Observable.throw(error.json().error || 'Server error'));
}
Api Class
public class Project
{
int ProjectId { get; set; }
int ClientId { get; set; }
string ClientName { get; set; }
string ProjectName { get; set; }
int ProjectType { get; set; }
string ProjectTypeName { get; set; }
string ClientConcernPerson { get; set; }
string ContactNo { get; set; }
string GivenDate { get; set; }
string DeliveryDate { get; set; }
int ProjectManager { get; set; }
int ProjectLeader { get; set; }
string ProjectManagerName { get; set; }
string ProjectLeaderName { get; set; }
SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ToString());
public List<Project> GetProjectList(int ProjectId)
{
SqlCommand cm = new SqlCommand("GetProjectList", cn);
cm.Parameters.AddWithValue("@Projectid", ProjectId);
cm.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cm);
DataTable dt = new DataTable();
da.Fill(dt);
List<Project> projectList = new List<Project>();
Client C=new Client();
foreach (DataRow dr in dt.Rows)
{
projectList.Add(new Project
{
ProjectId = Convert.ToInt32(dr["ProjectId"].ToString()),
ProjectLeader = Convert.ToInt32(dr["ProjectLeader"].ToString()),
ProjectName = dr["ProjectName"].ToString(),
ProjectType = Convert.ToInt32(dr["ProjectType"].ToString()),
ProjectTypeName = dr["ProjectTypeName"].ToString(),
ClientId = Convert.ToInt32(dr["ClientId"].ToString()),
ClientName = dr["ClientName"].ToString(),
ClientConcernPerson = dr["ClientConcernPerson"].ToString(),
ContactNo = dr["ContactNo"].ToString(),
GivenDate = dr["GivenDate"].ToString(),
DeliveryDate = dr["DeliveryDate"].ToString(),
ProjectManager = Convert.ToInt32(dr["ProjectManager"].ToString()),
ProjectManagerName = dr["ProjectManagerName"].ToString(),
ProjectLeaderName = dr["ProjectLeaderName"].ToString(),
});
}
return projectList;
}
public List<ClientListForDropdownList> GetClientListForDropdownList()
{
ClientListForDropdownList c = new ClientListForDropdownList();
SqlCommand cm = new SqlCommand("GetClientForddl", cn);
cm.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cm);
DataTable dt = new DataTable();
da.Fill(dt);
List<ClientListForDropdownList> cclist = new List<ClientListForDropdownList>();
foreach (DataRow dr in dt.Rows)
{
cclist.Add(new ClientListForDropdownList
{
ClientID = Convert.ToInt32(dr["ClientRowID"].ToString()),
ClientName = dr["ClientName"].ToString()
});
}
return cclist;
}
public List<TeamLdr> GetTeamLdrList()
{
SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ToString());
SqlCommand cm = new SqlCommand("GetTeamLdrList", cn);
cm.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cm);
DataTable dt = new DataTable();
da.Fill(dt);
List<TeamLdr> TeamLdrList = new List<TeamLdr>();
foreach (DataRow dr in dt.Rows)
{
TeamLdrList.Add(new TeamLdr
{
ProjectLeader = Convert.ToInt32(dr["EmployeeId"].ToString()),
ProjectLeaderName = dr["EmpName"].ToString()
});
}
return TeamLdrList;
}
public List<ProjectMgr> GetProjectMgrList()
{
SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ToString());
SqlCommand cm = new SqlCommand("GetProjectMgrList", cn);
cm.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cm);
DataTable dt = new DataTable();
da.Fill(dt);
List<ProjectMgr> projectList = new List<ProjectMgr>();
foreach (DataRow dr in dt.Rows)
{
projectList.Add(new ProjectMgr
{
ProjectManager = Convert.ToInt32(dr["EmployeeId"].ToString()),
ProjectManagerName = dr["EmpName"].ToString()
});
}
return projectList;
}
public Project GetProjectEdit(int ProjectId)
{
SqlCommand cm = new SqlCommand("GetProjectEdit", cn);
cm.Parameters.AddWithValue("@Projectid", ProjectId);
cm.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cm);
DataTable dt = new DataTable();
da.Fill(dt);
Project projectList = new Project
{
ProjectId = Convert.ToInt32(dt.Rows[0]["ProjectId"].ToString()),
ProjectLeader = Convert.ToInt32(dt.Rows[0]["ProjectLeader"].ToString()),
ProjectName = dt.Rows[0]["ProjectName"].ToString(),
ProjectType = Convert.ToInt32(dt.Rows[0]["ProjectType"].ToString()),
ProjectTypeName = dt.Rows[0]["ProjectTypeName"].ToString(),
ClientId = Convert.ToInt32(dt.Rows[0]["ClientId"].ToString()),
ClientName = dt.Rows[0]["ClientName"].ToString(),
ClientConcernPerson = dt.Rows[0]["ClientConcernPerson"].ToString(),
ContactNo = dt.Rows[0]["ContactNo"].ToString(),
GivenDate = dt.Rows[0]["GivenDate"].ToString(),
DeliveryDate = dt.Rows[0]["DeliveryDate"].ToString(),
ProjectManager = Convert.ToInt32(dt.Rows[0]["ProjectManager"].ToString()),
ProjectManagerName = dt.Rows[0]["ProjectManagerName"].ToString(),
ProjectLeaderName = dt.Rows[0]["ProjectLeaderName"].ToString(),
};
return projectList;
}
public List<Project> GetProjectListByFilter(string projectName, int projectType)
{
SqlCommand cm = new SqlCommand("GetProjectListByFilter", cn);
cm.Parameters.AddWithValue("@ProjectName", projectName);
cm.Parameters.AddWithValue("@ProjectType", projectType);
cm.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cm);
DataTable dt = new DataTable();
da.Fill(dt);
List<Project> projectList = new List<Project>();
foreach (DataRow dr in dt.Rows)
{
projectList.Add(new Project
{
ProjectId = Convert.ToInt32(dr["ProjectId"].ToString()),
ProjectLeader = Convert.ToInt32(dr["ProjectLeader"].ToString()),
ProjectName = dr["ProjectName"].ToString(),
ProjectType = Convert.ToInt32(dr["ProjectType"].ToString()),
ProjectTypeName = dr["ProjectTypeName"].ToString(),
ClientId = Convert.ToInt32(dr["ClientId"].ToString()),
ClientName = dr["ClientName"].ToString(),
ClientConcernPerson = dr["ClientConcernPerson"].ToString(),
ContactNo = dr["ContactNo"].ToString(),
GivenDate = dr["GivenDate"].ToString(),
DeliveryDate = dr["DeliveryDate"].ToString(),
ProjectManager = Convert.ToInt32(dr["ProjectManager"].ToString()),
ProjectManagerName = dr["ProjectManagerName"].ToString(),
ProjectLeaderName = dr["ProjectLeaderName"].ToString()
});
}
return projectList;
}
public int SaveProject(Project project, int flag)
{
if (cn.State == 0)
{
cn.Open();
}
DataTable dt = new DataTable();
SqlCommand cm = new SqlCommand("InsertProjectMaster", cn);
cm.CommandType = CommandType.StoredProcedure;
cm.Parameters.AddWithValue("@projectid", project.ProjectId);
cm.Parameters.AddWithValue("@clientid", project.ClientId);
cm.Parameters.AddWithValue("@projectName", project.ProjectName);
cm.Parameters.AddWithValue("@projectType", project.ProjectType);
cm.Parameters.AddWithValue("@ClientConcernPerson", project.ClientConcernPerson);
cm.Parameters.AddWithValue("@ContactNo", project.ContactNo);
cm.Parameters.AddWithValue("@GivenDate", project.GivenDate);
cm.Parameters.AddWithValue("@DeliveryDate", project.DeliveryDate);
cm.Parameters.AddWithValue("@projectMgr", project.ProjectManager);
cm.Parameters.AddWithValue("@projectLdr", project.ProjectLeader);
cm.Parameters.AddWithValue("@flag", flag);
cm.Parameters.AddWithValue("@retval", 0);
cm.Parameters["@retval"].Direction = ParameterDirection.InputOutput;
cm.ExecuteNonQuery();
int retval = Convert.ToInt32(cm.Parameters["@retval"].Value.ToString());
return retval;
}
public int DeleteProject(int ProjectID)
{
if (cn.State == 0)
{
cn.Open();
}
SqlCommand cm = new SqlCommand("DeleteProject", cn);
cm.CommandType = CommandType.StoredProcedure;
cm.Parameters.AddWithValue("@ProjectId", ProjectID);
cm.Parameters.AddWithValue("@retval", 0);
cm.Parameters["@retval"].Direction = ParameterDirection.InputOutput;
cm.ExecuteNonQuery();
int retval = Convert.ToInt32(cm.Parameters["@retval"].Value.ToString());
return retval;
}
}
And Controller
public class ProjectController : ApiController
{
Project p;
[HttpPost]
public Project SaveProject(Project project)
{
p = new Project();
int retval = p.SaveProject(project, 1);
return p;
}
}
What I have tried:
I have used [From Body] in post method but it didn't work