UrlLoginController.cs 3.64 KB
using AIAHTML5.API.Constants;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using AIAHTML5.API.Models;
using Newtonsoft.Json.Linq;
using System.Data.SqlClient;
using System.Collections;
using log4net;
using Newtonsoft.Json;
using System.Data;

namespace AIAHTML5.API.Controllers
{
    public class UrlLoginController : ApiController
    {
        // POST api/UrlLogin
        public HttpResponseMessage Post([FromBody]JObject loginUrl)
        {
            ILog logger = log4net.LogManager.GetLogger((System.Reflection.MethodBase.GetCurrentMethod().DeclaringType));
            logger.Debug("inside POST in UrlLoginController");
            try{
         HttpResponseMessage response = null;
            if (loginUrl != null)
            {
               if (!string.IsNullOrEmpty(loginUrl["accountNumber"].ToString()) && !string.IsNullOrEmpty(loginUrl["edition"].ToString()))          
                {
                        var EditionId = Convert.ToInt32(loginUrl["edition"].ToString());
                        var accountNumber = loginUrl["accountNumber"].ToString();
                        var mType= loginUrl["mType"].ToString();
                        string slug = string.Empty;

                        int licId = AIAHTML5.API.Models.Users.ValidateLicenseByLoginUrl(accountNumber, EditionId);

                    if (licId>0)
                    {
                        if(mType.ToUpper()=="CA")
                        {
                            slug = "clinical-animations";
                        }
                        else if(mType.ToUpper() == "DA")
                        {
                            slug = "da-view-list";
                        }

                        dynamic uerinfo = AIAHTML5.API.Models.Users.ValidateLoginByUrl(accountNumber, EditionId, licId, slug);
                        if (uerinfo != null)
                        {
                            response = new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(JsonConvert.SerializeObject(uerinfo)) };
                        }
                        else
                        {
                            logger.Debug("INVALID_LOGIN");
                            response = new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(AIAConstants.INVALID_LOGIN) };
                        }
                    }       
                    else
                    {
                        logger.Debug("NOT AUTHORIZED");
                        response = new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(AIAConstants.MSG_NOT_AUTHORIZE_SITE_USER) };

                    }
               }
                else
                {
                    logger.Debug("INVALID URL");
                    response = new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(AIAConstants.INVALID_URL) };

                }
            }
            else
            {
                response = new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = null };

            }
                return response;
            }
            catch (SqlException e)
            {
                return new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new StringContent(AIAConstants.SQL_CONNECTION_ERROR) };
            }
            catch (Exception e)
            {
                return new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new StringContent(AIAConstants.EXCEPTION_OCCURED) };

            }
        }

    }
}