ClientController.cs 5.24 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;

namespace AIAHTML5.API.Controllers
{
    public class ClientController : ApiController
    {
        // GET api/client
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/client/5
        public string Get(int id)
        {
            return "value";
        }

        // POST api/client
        public HttpResponseMessage Post([FromBody]JObject siteUrl)
        {
            ILog logger = log4net.LogManager.GetLogger((System.Reflection.MethodBase.GetCurrentMethod().DeclaringType));
            logger.Debug("inside POST in ClientController");
            try{
         HttpResponseMessage response = null;
            if (siteUrl != null)
            {
               if (!string.IsNullOrEmpty(siteUrl["siteIP"].ToString()) && !string.IsNullOrEmpty(siteUrl["remoteIPAddress"].ToString()) && !string.IsNullOrEmpty(siteUrl["accountNumber"].ToString()) && !string.IsNullOrEmpty(siteUrl["edition"].ToString()))
              
                {

                    int siteId = AIAHTML5.API.Models.Users.ValidateLicenseSiteIP(siteUrl["siteIP"].ToString(), siteUrl["remoteIPAddress"].ToString(), siteUrl["accountNumber"].ToString(), Convert.ToByte(siteUrl["edition"].ToString()));
                if (siteId > 0)
                {
                    dynamic uerinfo = AIAHTML5.API.Models.Users.ValidateSiteLogin(siteUrl["siteIP"].ToString(), siteUrl["accountNumber"].ToString(), siteUrl["urlReferer"].ToString(), siteUrl["edition"].ToString(), siteId);
                    if (uerinfo != null)
                    {
                        uerinfo.siteId = siteId;
                        response = new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(JsonConvert.SerializeObject(uerinfo)) };
                    }
                    else
                    {
                        //ser user = new User();
                        //user.LoginFailureCauseId = AIAConstants.INVALID_CLIENT;
                        //dynamic userinfo = user;
                        //response = new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(userInfo) };
                        logger.Debug("IVALID CLIENT");
                        response = new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(AIAConstants.INVALID_CLIENT) };
                    }
                }
           
                else
                {
                    logger.Debug("NOT AUTHORIZED");
                    response = new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(AIAConstants.MSG_NOT_AUTHORIZE_SITE_USER) };

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

            }
            logger.Debug("response = " + response);
                return response;
            }
            catch (SqlException e)
            {

                logger.Fatal("SqlException occured for siteUrl =" + siteUrl["siteIP"].ToString() + " and siteUrl= " + siteUrl["siteIP"].ToString() + " & accountNumber = " + siteUrl["accountNumber"].ToString() + " &edition = " + siteUrl["edition"].ToString() + "Exception= " + e.Message + ", STACKTRACE: " + e.StackTrace);

                ArrayList supportMailList = UserUtility.GetSupportMailList();
                string mailSubject = AIAConstants.SQL_CONNECTION_ERROR_MAIL_SUBJECT;
                string mailBody = "MESSAGE: " + e.Message + ", STACKTRACE: " + e.StackTrace;
                UserUtility.SendEmailForException(0, supportMailList, "", mailSubject, mailBody,true,siteUrl);

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

                logger.Fatal("Exception occured for loginId =" + siteUrl["siteIP"].ToString() + " and siteUrl= " + siteUrl["siteIP"].ToString() + " & accountNumber = " + siteUrl["accountNumber"].ToString() + " &edition = " + siteUrl["edition"].ToString() + "Exception= " + e.Message + ", STACKTRACE: " + e.StackTrace);
                ArrayList supportMailList = UserUtility.GetSupportMailList();
                string mailSubject = AIAConstants.EXCEPTION_IN_AIAHTML5_MAIL_SUBJECT;
                string mailBody = "MESSAGE: " + e.Message + ", STACKTRACE: " + e.StackTrace;
                UserUtility.SendEmailForException(0, supportMailList, "", mailSubject, mailBody, true, siteUrl);

                return new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new StringContent(AIAConstants.EXCEPTION_OCCURED) };

            }
        }

        // PUT api/client/5
        public void Put(int id, [FromBody]string value)
        {
        }

        // DELETE api/client/5
        public void Delete(int id)
        {
        }
    }
}