tiseza_oss_live/Controllers/CompanyShareholderApiContro...

96 lines
3.5 KiB
C#

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);
}
}
}
}