public List<string> SyncData() { List<string> listReturnValues = new List<string>(); try { List<ProjectVM> projectList = new List<ProjectVM>(); ProjectService getProjects = new ProjectService(); projectList = getProjects.GetAllProjects(); foreach (ProjectVM proVM in projectList) { SqlQueries.Project_Main_Tbl mainTableIsertionObject = new SqlQueries.Project_Main_Tbl(); listReturnValues.Add(mainTableIsertionObject.InsertOrUpdate(proVM)); } #region // delete project not in redmine DataTable dt = dc.GetDataTable("Select [Project_Id] from [dbo].[Project_Main] "); List<Int64> projectIdRedmine = new List<Int64>(); if (dt != null) { if (dt.Rows.Count > 0) { for (int i = 0; i < projectList.Count; i++) { projectIdRedmine.Add(projectList[i].id); } foreach (DataRow dr in dt.Rows) { //delete project which are not present if (!projectIdRedmine.Contains(Convert.ToInt64(dr["Project_Id"]))) { string deleteProjectRowQuery = "Delete from Project_Main where Project_Id = '" + dr["Project_Id"].ToString() + "'"; listReturnValues.Add("Rows Delted for ProjectId " + dr["Project_Id"].ToString() + ": " + dc.InsertUpdateDelete(deleteProjectRowQuery).ToString()); } } } } #endregion listReturnValues.Add("Sync Sucess"); return listReturnValues; } catch (Exception ex) { Logger.Error("JsonToSQL.SyncData" + ex.ToString()); listReturnValues.Add("Sync Failed:" + ex.ToString()); return listReturnValues; } }
public string putXMLData(string destinationUrl, string requestXml, ProjectVM provm) { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(destinationUrl); byte[] bytes; bytes = System.Text.Encoding.ASCII.GetBytes(requestXml); request.ContentType = "application/xml; encoding='utf-8'"; request.ContentLength = bytes.Length; request.Method = "PUT"; Stream requestStream = request.GetRequestStream(); requestStream.Write(bytes, 0, bytes.Length); requestStream.Close(); HttpWebResponse response; response = (HttpWebResponse)request.GetResponse(); int statusCode = Convert.ToInt32(response.StatusCode); if (response.StatusCode == HttpStatusCode.OK || response.StatusCode == HttpStatusCode.Created) { SqlQueries.Project_Main_Tbl insertUpdateProjectMainTable = new SqlQueries.Project_Main_Tbl(); string DBResult = insertUpdateProjectMainTable.InsertOrUpdate(provm); if (DBResult == "Success") { return "Success"; } else { Logger.Debug("AddProService.putXMLData: Sql DB Insert Failed: " + DBResult); return "Api Server failure"; } } else if (statusCode == 404) { Logger.Debug("AddProService.putXMLData: 404 status code redmine: Redmine Unreachable/Not Responding"); return "Redmine Unreachable/Not Responding"; } else if (statusCode == 422) { Logger.Debug("AddProService.putXMLData: 422 status code redmine : Data Invalid"); return "Data Invalid"; } else { Logger.Debug("AddProService.putXMLData: Unknown Status: " + statusCode.ToString()); return "Failed"; } } catch (WebException we) { Logger.Error("AddProService.putXMLData " + we.ToString()); return "Redmine Server Not Responding"; } catch (Exception ex) { Logger.Error("AddProService.putXMLData " + ex.ToString()); return "Api Server failure"; } }
public List<string> SyncProjects() { List<string> listReturnValues = new List<string>(); try { List<ProjectVM> projectList = new List<ProjectVM>(); ProjectService getProjects = new ProjectService(); projectList = getProjects.GetAllProjects(); foreach (ProjectVM proVM in projectList) { SqlQueries.Project_Main_Tbl mainTableIsertionObject = new SqlQueries.Project_Main_Tbl(); string mainTableResult = mainTableIsertionObject.InsertOrUpdate(proVM); //if (mainTableResult == "Success") //{ // SqlQueries.Membership_Tbl membershipTblObj; // foreach (Membership mem in proVM.members) // { // foreach (Role role in mem.roles) // { // membershipTblObj = new SqlQueries.Membership_Tbl(); // string membershipResult = membershipTblObj.InsertOrUpdateMembership(mem.id.ToString(), mem.user.id.ToString(), role.name, proVM.id.ToString()); // } // } //} listReturnValues.Add("ProjectId = " + proVM.id.ToString() + " MainTable : " + mainTableResult); } #region // delete project not in redmine DataTable dt = dc.GetDataTable("Select [Project_Id] from [dbo].[Project_Main] "); List<Int64> projectIdRedmine = new List<Int64>(); if (dt != null) { if (dt.Rows.Count > 0) { for (int i = 0; i < projectList.Count; i++) { projectIdRedmine.Add(projectList[i].id); } foreach (DataRow dr in dt.Rows) { //delete project which are not present if (!projectIdRedmine.Contains(Convert.ToInt64(dr["Project_Id"]))) { string deleteProjectRowQuery = "Delete from [Memberships] where Project_Id= '" + dr["Project_Id"].ToString() + "' Delete from Project_Main where Project_Id = '" + dr["Project_Id"].ToString() + "' "; listReturnValues.Add("Rows Delted for ProjectId " + dr["Project_Id"].ToString() + ": " + dc.InsertUpdateDelete(deleteProjectRowQuery).ToString()); } } } } #endregion listReturnValues.Add("Sync Sucess"); return listReturnValues; } catch (Exception ex) { Logger.Error("JsonToSQL.SyncData" + ex.ToString()); listReturnValues.Add("Sync Failed:" + ex.ToString()); return listReturnValues; } }
public string postXMLData(string destinationUrl, string requestXml, ProjectVM provm) { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(destinationUrl); byte[] bytes; bytes = System.Text.Encoding.ASCII.GetBytes(requestXml); request.ContentType = "application/xml; encoding='utf-8'"; request.ContentLength = bytes.Length; request.Method = "POST"; Stream requestStream = request.GetRequestStream(); requestStream.Write(bytes, 0, bytes.Length); requestStream.Close(); HttpWebResponse response; response = (HttpWebResponse)request.GetResponse(); int statusCode = Convert.ToInt32(response.StatusCode); if (response.StatusCode == HttpStatusCode.OK || response.StatusCode == HttpStatusCode.Created) { int id = 0; string[] strArr = response.Headers["Location"].ToString().Split('/'); int.TryParse(strArr[strArr.Length - 1], out id);//getting id of created project provm.id = id; List<string> userRole = null; SqlQueries.Project_Main_Tbl insertUpdateProjectMainTable = new SqlQueries.Project_Main_Tbl(); string DBResult = insertUpdateProjectMainTable.InsertOrUpdate(provm); if (DBResult == "Success") { AddUserToProjectMembership(id.ToString(), GetUsersFromGroup(out userRole), userRole); return "Success"; } else { Logger.Debug("AddProService.postXMLData: Sql DB Insert Failed: " + DBResult); return "Api Server failure"; } } else if (statusCode == 404) { Logger.Debug("AddProService.postXMLData: 404 status code redmine: Redmine Unreachable/Not Responding"); return "Redmine Unreachable/Not Responding"; } else if (statusCode == 422) { Logger.Debug("AddProService.postXMLData: 422 status code redmine : Data Invalid"); return "Data Invalid"; } else { Logger.Debug("AddProService.postXMLData: Unknown Status: " + statusCode.ToString()); return "Failed"; } } catch (WebException we) { Logger.Error("AddProService.postXMLData " + we.ToString()); return "Redmine Server Not Responding"; } catch (Exception ex) { Logger.Error("AddProService.postXMLData " + ex.ToString()); return "Api Server failure"; } }