Exemple #1
0
 // POST api/values
 public void Post([FromBody] SupportIssue value)
 {
     this.bl.AddFaQ(value);
 }
        // POST: api/faq
        public IHttpActionResult Post([FromBody] SupportIssue value)
        {
            if (value.lnks != null && value.lnks.Any())
            {
                foreach (var item in value.lnks)
                {
                    if (!File.Exists(item.pth))
                    {
                        return(NotFound());
                    }
                }
            }
            using (var con = new SqlConnection())
            {
                con.ConnectionString = @"Data Source=DANEL-DB\S16;Initial Catalog=support_new;Integrated Security=True;";

                con.Open();
                using (SqlCommand SupportIssuesUpdate = new SqlCommand("SupportIssuesUpdate", con, null))
                {
                    SupportIssuesUpdate.CommandType = System.Data.CommandType.StoredProcedure;
                    SupportIssuesUpdate.Parameters.AddWithValue("@Problem", value.prb);
                    SupportIssuesUpdate.Parameters.AddWithValue("@Solution", value.sln);
                    SupportIssuesUpdate.Parameters.AddWithValue("@ModuleID", value.mID);
                    SupportIssuesUpdate.Parameters.AddWithValue("@ID", null);
                    var prm = SupportIssuesUpdate.Parameters.Add("@newID", SqlDbType.Int);
                    prm.Direction = ParameterDirection.Output;
                    SupportIssuesUpdate.ExecuteScalar();
                    int newSupportIssueID = int.Parse(prm.Value.ToString());
                    value.id = newSupportIssueID;

                    if (value.mID.HasValue)
                    {
                        var mdls = WebCacheManager.Instance.GetValue <Module[]>("mdls");
                        var nme  = mdls.FirstOrDefault(i => i.id == value.mID).name;
                        value.mdlName = nme;
                    }
                    value.ts = DateTime.Now;
                    if (value.lnks != null)
                    {
                        foreach (var item in value.lnks)
                        {
                            using (SqlCommand supportIssueLinksUpdate = new SqlCommand("SupportIssueLinksUpdate", con, null))
                            {
                                supportIssueLinksUpdate.CommandType = System.Data.CommandType.StoredProcedure;
                                supportIssueLinksUpdate.Parameters.AddWithValue("@SupportIssueID", newSupportIssueID);
                                supportIssueLinksUpdate.Parameters.AddWithValue("@Path", item.pth);
                                supportIssueLinksUpdate.Parameters.AddWithValue("@ID", -1);
                                prm           = supportIssueLinksUpdate.Parameters.Add("@newID", SqlDbType.Int);
                                prm.Direction = ParameterDirection.Output;
                                supportIssueLinksUpdate.ExecuteScalar();
                                int newSupportIssueLinkID = int.Parse(prm.Value.ToString());
                                item.id   = newSupportIssueLinkID;
                                item.sIid = newSupportIssueID;
                            }
                        }
                    }

                    var sis = WebCacheManager.Instance.GetValue <SupportIssue[]>("sis").ToList();
                    sis.Add(value);
                    var toArray = sis.ToArray();
                    WebCacheManager.Instance.SetValue("sis", toArray);
                    WebCacheManager.Instance.SetValue("sisTime", DateTime.Now);
                }
            }
            return(Ok(value));
        }
Exemple #3
0
 // PUT api/values/5
 public void Put(int id, [FromBody] SupportIssue value)
 {
     this.bl.UpdateFaq(id, value);
 }
        // PUT: api/faq/5
        public IHttpActionResult Put(int id, [FromBody] SupportIssue value)
        {
            using (var con = new SqlConnection())
            {
                con.ConnectionString = @"Data Source=DANEL-DB\S16;Initial Catalog=support_new;Integrated Security=True;";

                con.Open();
                using (SqlCommand SupportIssuesUpdate = new SqlCommand("SupportIssuesUpdate", con, null))
                {
                    SupportIssuesUpdate.CommandType = System.Data.CommandType.StoredProcedure;
                    SupportIssuesUpdate.Parameters.AddWithValue("@Problem", value.prb);
                    SupportIssuesUpdate.Parameters.AddWithValue("@Solution", value.sln);
                    SupportIssuesUpdate.Parameters.AddWithValue("@ModuleID", value.mID);
                    SupportIssuesUpdate.Parameters.AddWithValue("@ID", id);
                    SupportIssuesUpdate.ExecuteNonQuery();
                }

                bool supportIssueLinksDeletionSucess = false;
                using (SqlCommand supportIssueLinksDelete = new SqlCommand("SupportIssueLinksDelete", con, null))
                {
                    supportIssueLinksDelete.CommandType = System.Data.CommandType.StoredProcedure;
                    try
                    {
                        var hasLnks = value.lnks.Any();
                        if (hasLnks)
                        {
                            var newLnks = value.lnks;
                            foreach (var item in newLnks)
                            {
                                supportIssueLinksDelete.Parameters.Clear();
                                supportIssueLinksDelete.Parameters.AddWithValue("@ID", value.id);
                                supportIssueLinksDelete.ExecuteNonQuery();
                            }
                        }
                        supportIssueLinksDeletionSucess = true;
                    }
                    catch (Exception)
                    {
                    }
                }

                if (supportIssueLinksDeletionSucess)
                {
                    using (SqlCommand supportIssueLinksUpdate = new SqlCommand("SupportIssueLinksUpdate", con, null))
                    {
                        supportIssueLinksUpdate.CommandType = System.Data.CommandType.StoredProcedure;
                        var hasLnks = value.lnks.Any();
                        if (hasLnks)
                        {
                            var newLnks = value.lnks;
                            foreach (var item in newLnks)
                            {
                                supportIssueLinksUpdate.Parameters.Clear();
                                supportIssueLinksUpdate.Parameters.AddWithValue("@ID", default(int));
                                supportIssueLinksUpdate.Parameters.AddWithValue("@SupportIssueID", value.id);
                                supportIssueLinksUpdate.Parameters.AddWithValue("@Path", item.pth);
                                supportIssueLinksUpdate.ExecuteNonQuery();
                            }
                        }
                    }
                }

                var arr = WebCacheManager.Instance.GetValue <SupportIssue[]>("sis");
                for (int i = 0; i < arr.Length; i++)
                {
                    if (arr[i].id == id)
                    {
                        arr[i]    = value;
                        arr[i].ts = DateTime.Now;
                    }
                }


                if (value.mID.HasValue)
                {
                    var mdls = WebCacheManager.Instance.GetValue <List <Module> >("mdls-flat");
                    var v    = mdls.FirstOrDefault(j => j.id == value.mID);
                    if (v != null)
                    {
                        value.mdlName = v.name;
                    }
                }
                value.ts = DateTime.Now;
                WebCacheManager.Instance.SetValue("sisTime", DateTime.Now);
            }
            return(Ok(value));
        }