using DevExtreme.AspNet.Data; using DevExtreme.AspNet.Mvc; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using OSS.Models; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Net.Http.Formatting; using System.Web.Http; namespace OSS.Controllers { [Authorize] [Route("api/CompanyShareholder/{action}", Name = "CompanyShareholder")] public class CompanyShareholderApiController : ApiController { private OSSDBContext myContext = new OSSDBContext(); [HttpGet] public HttpResponseMessage GetCompanyProfile(DataSourceLoadOptions loadOptions) { return Request.CreateResponse(DataSourceLoader.Load(myContext.CompanyShareholder, loadOptions)); } [HttpGet] public HttpResponseMessage GetCompanyShareholderByTIN(DataSourceLoadOptions loadOptions, string CompanyTIN) { return Request.CreateResponse(DataSourceLoader.Load(myContext.CompanyShareholder.Where(t => t.CompanyTIN == CompanyTIN && t.ShareStatus=="Active"), loadOptions)); } [HttpPost] public HttpResponseMessage AddCompanyShareholder(FormDataCollection form) { var values = form.Get("values"); JObject data = JObject.Parse(values); var newCompanyShare = new CompanyShareholderExternal(); data["CreatedDate"] = DateTime.Now; JsonConvert.PopulateObject(values, newCompanyShare); Validate(newCompanyShare); if (!ModelState.IsValid) return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState.GetFullErrorMessage()); myContext.CompanyShareholder.Add(newCompanyShare); myContext.SaveChanges(); return Request.CreateResponse(HttpStatusCode.Created); } [HttpPut] public HttpResponseMessage UpdateProfile(FormDataCollection form) { var key = Convert.ToString(form.Get("key")); var values = form.Get("values"); var CompanyInfo = myContext.CompanyProfileExternal.First(o => o.CompanyTIN == key); JObject data = JObject.Parse(values); values = data.ToString(); JsonConvert.PopulateObject(values, CompanyInfo); Validate(CompanyInfo); if (!ModelState.IsValid) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState.GetFullErrorMessage()); } else { myContext.SaveChanges(); return Request.CreateResponse(HttpStatusCode.OK); } } [HttpPut] public HttpResponseMessage UpdateShareholders(FormDataCollection form) { var key = Convert.ToString(form.Get("key")); var values = form.Get("values"); var ShareholderInfo = myContext.CompanyShareholder.First(o => o.ShareholderID.ToString() == key); JObject data = JObject.Parse(values); values = data.ToString(); JsonConvert.PopulateObject(values, ShareholderInfo); Validate(ShareholderInfo); if (!ModelState.IsValid) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState.GetFullErrorMessage()); } else { myContext.SaveChanges(); return Request.CreateResponse(HttpStatusCode.OK); } } } }