You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
4.4 KiB
126 lines
4.4 KiB
using Business.Authentication;
|
|
using Business.Mobile;
|
|
using Common;
|
|
using Common.Model;
|
|
using JsonRx.AuthFilter;
|
|
using JsonRx.Helper;
|
|
using log4net;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Linq;
|
|
using System.Web.Http;
|
|
using System.Web.Http.ModelBinding;
|
|
using static Common.Model.DynamicReceiverSetup.DynamicReceiver;
|
|
|
|
namespace JsonRx.Api
|
|
{
|
|
/// <summary>
|
|
/// </summary>
|
|
[RoutePrefix("api/v1")]
|
|
public class ReceiverController : ApiController
|
|
{
|
|
private readonly IMobileServices _requestServices;
|
|
private readonly IAuthenticationBusiness _authenticationBusiness;
|
|
private static readonly ILog Log = LogManager.GetLogger(typeof(ReceiverController));
|
|
|
|
/// <summary>
|
|
/// </summary>
|
|
public ReceiverController() { }
|
|
|
|
/// <summary>
|
|
/// </summary>
|
|
/// <param name="requestServices"></param>
|
|
/// <param name="authenticationBusiness"></param>
|
|
public ReceiverController(IMobileServices requestServices, IAuthenticationBusiness authenticationBusiness)
|
|
{
|
|
_requestServices = requestServices;
|
|
_authenticationBusiness = authenticationBusiness;
|
|
}
|
|
|
|
/// <summary>
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
[TokenAuthentication]
|
|
[Route("mobile/receiver/{id}")]
|
|
public IHttpActionResult GetReceiverInfo(string id)
|
|
{
|
|
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
|
|
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "GetReceiverInfo";
|
|
|
|
Log.Debug("GetReceiverInfo | REQUEST : " + id);
|
|
var receiver = _requestServices.GetReceiverDetail(id);
|
|
return Ok(receiver);
|
|
}
|
|
|
|
/// <summary>
|
|
/// </summary>
|
|
/// <param name="model"></param>
|
|
/// <param name="userId"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
[TokenAuthentication]
|
|
[Route("mobile/receiver/save/{userId}")]
|
|
public IHttpActionResult SaveReceiver(ReceiverModel model, string userId)
|
|
{
|
|
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
|
|
LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = userId;
|
|
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "SaveReceiver";
|
|
|
|
Log.Debug("SaveReceiver | REQUEST : " + JsonConvert.SerializeObject(model));
|
|
if (ModelState.IsValid)
|
|
{
|
|
var res = _requestServices.SaveReceiver(model, userId);
|
|
return Ok(res);
|
|
}
|
|
return ModelValidationError(ModelState);
|
|
}
|
|
|
|
/// <summary>
|
|
/// </summary>
|
|
/// <param name="userId"></param>
|
|
/// <param name="receiverId"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
[TokenAuthentication]
|
|
[Route("mobile/receiver/remove/{userId}")]
|
|
public IHttpActionResult RemoveReceiver(string userId, [FromUri] string receiverId)
|
|
{
|
|
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
|
|
LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = userId;
|
|
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "RemoveReceiver";
|
|
|
|
Log.Debug("RemoveReceiver | REQUEST : " + receiverId);
|
|
JsonRxResponse res = _requestServices.RemoveReceiver(userId, receiverId);
|
|
if (res.ErrorCode.Equals("0"))
|
|
{
|
|
Receivers rs = new Receivers
|
|
{
|
|
recipientId = receiverId
|
|
};
|
|
|
|
res.Data = rs;
|
|
}
|
|
return Ok(res);
|
|
}
|
|
|
|
/// <summary>
|
|
/// </summary>
|
|
/// <param name="modelState"></param>
|
|
/// <returns></returns>
|
|
protected IHttpActionResult ModelValidationError(ModelStateDictionary modelState)
|
|
{
|
|
var modelErrors = modelState.Select(x => x.Value.Errors)
|
|
.Where(y => y.Count > 0)
|
|
.First()[0].ErrorMessage;
|
|
JsonRxResponse jsonRx = new JsonRxResponse()
|
|
{
|
|
ErrorCode = "1",
|
|
Msg = string.IsNullOrEmpty(modelErrors) ? "It seems like incorrect Json input(s)." : modelErrors,
|
|
Data = ""
|
|
};
|
|
return Ok(jsonRx);
|
|
}
|
|
}
|
|
}
|