Ejemplo n.º 1
0
        /// <summary>
        /// method to get single userdevice
        /// </summary>
        /// <param name="userID">takes userid as input</param>
        /// <param name="userDeviceID">takes user device id as input</param>
        /// <returns>returns user device with id associated to user in the form of personalization response</returns>
        public PersonalizationResponseDTO <UserDeviceDTO> GetUserDevice(string userID, string userDeviceID)
        {
            string callerMethodName = string.Empty;

            try
            {
                //Get Caller Method name from CallerInformation class
                callerMethodName = CallerInformation.TrackCallerMethodName();
                UserDeviceDAL    userdevicedal    = new UserDeviceDAL();
                UserDeviceEntity userdeviceentity = userdevicedal.GetUserDevice(userID, userDeviceID);
                //converting userdevice entity to Response data transfer object
                var ResponseUserDevice = new PersonalizationResponseDTO <UserDeviceDTO>();
                if (userdeviceentity != null)
                {
                    UserDeviceDTO userdevicedto = UserDeviceEntityDTOMapper(userdeviceentity);
                    ResponseUserDevice.result = userdevicedto;
                }
                else
                {
                    ResponseUserDevice.result = null;
                }
                return(ResponseUserDevice);
            }
            catch (DataAccessException DALexception)
            {
                throw DALexception;
            }
            catch (Exception exception)
            {
                InsightLogger.Exception(exception.Message, exception, callerMethodName);
                //LoggerHelper.WriteToLog(exception + " - Error in BL while retreiving single userdevice: "
                //+exception.ToString(), CoreConstants.Priority.High, CoreConstants.Category.Error);
                throw new BusinessLogicException();
            }
        }
        public HttpResponseMessage GetUsers(string userID)
        {
            string callerMethodName = string.Empty;

            try
            {
                //Get Caller Method name from CallerInformation class
                callerMethodName = CallerInformation.TrackCallerMethodName();
                InsightLogger.TrackEvent("PersonalizationAPIController :: endpoint : api/personalizationapi/users/{userID}, action : start get method");
                //check if userid is null
                if (!string.IsNullOrEmpty(userID))
                {
                    Personalization personalization = new Personalization();
                    UserDTO         user            = personalization.GetUser(userID);
                    //if user exists returns response otherwise not found
                    if (user != null)
                    {
                        InsightLogger.TrackEvent("PersonalizationAPIController :: endpoint : api/personalizationapi/users/{userID}, action : getting user with associated backends and devices, response: success, userID: " + userID);
                        var ResponseUsers = new PersonalizationResponseDTO <UserDTO>();
                        ResponseUsers.result = user;
                        return(Request.CreateResponse(HttpStatusCode.OK, ResponseUsers));
                    }
                    else
                    {
                        InsightLogger.TrackEvent("PersonalizationAPIController :: endpoint : api/personalizationapi/users/{userID}, action : getting user with associated backends and devices, response: user not available, userID: " + userID);
                        return(Request.CreateResponse(HttpStatusCode.OK, DataProvider.PersonalizationResponseError <UserBackendDTO>("400", "user does not exist", "")));
                    }
                }
                else
                {
                    InsightLogger.TrackEvent("PersonalizationAPIController :: endpoint : api/personalizationapi/users/{userID} , action: get user, response:userid is null");
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, DataProvider.PersonalizationResponseError <UserBackendDTO>("400", "user does not exist", "")));
                }
            }
            catch (DataAccessException dalexception)
            {
                InsightLogger.Exception(dalexception.Message, dalexception, callerMethodName);
                return(Request.CreateResponse(HttpStatusCode.NotFound, DataProvider.PersonalizationResponseError <UserDTO>("400", dalexception.Message, dalexception.Message)));
            }
            catch (BusinessLogicException blexception)
            {
                InsightLogger.Exception(blexception.Message, blexception, callerMethodName);
                return(Request.CreateResponse(HttpStatusCode.NotFound, DataProvider.PersonalizationResponseError <UserDTO>("400", blexception.Message, blexception.Message)));
            }
            catch (Exception exception)
            {
                InsightLogger.Exception(exception.Message, exception, callerMethodName);
                //LoggerHelper.WriteToLog(exception + " - exception in controller action while retreiving user : "******"400", exception.Message, exception.StackTrace)));
            }
        }
        public HttpResponseMessage GetUserDevice(string userID, string userDeviceID)
        {
            string callerMethodName = string.Empty;

            try
            {
                //Get Caller Method name from CallerInformation class
                callerMethodName = CallerInformation.TrackCallerMethodName();
                InsightLogger.TrackEvent("PersonalizationAPIController :: Get method, endpoint - api/personalizationapi/users/{userID}/devices/{userDeviceID}");
                //checks userid and userdeviceis for null
                if (!(string.IsNullOrEmpty(userID) || string.IsNullOrEmpty(userDeviceID)))
                {
                    UserDevice userdevice = new UserDevice();
                    InsightLogger.TrackEvent("PersonalizationAPIController :: Get specific Associated device  to user");
                    PersonalizationResponseDTO <UserDeviceDTO> ResponseUserDevice = userdevice.GetUserDevice(userID, userDeviceID);
                    //if user has associated device return response otherwise not found
                    if (ResponseUserDevice.result != null)
                    {
                        return(Request.CreateResponse(HttpStatusCode.OK, ResponseUserDevice));
                    }
                    else
                    {
                        return(Request.CreateResponse(HttpStatusCode.OK, DataProvider.PersonalizationResponseError <UserDeviceDTO>("400", "user does not have associated device", "")));
                    }
                }
                else
                {
                    InsightLogger.TrackEvent("PersonalizationAPIController ::userid or userdeviceid is null");
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, DataProvider.PersonalizationResponseError <UserDeviceDTO>("400", "userid or deviceid can't be empty or null ", "")));
                }
            }
            catch (DataAccessException dalexception)
            {
                InsightLogger.Exception(dalexception.Message, dalexception, callerMethodName);
                return(Request.CreateResponse(HttpStatusCode.NotFound, DataProvider.PersonalizationResponseError <UserDeviceDTO>("400", dalexception.Message, dalexception.Message)));
            }
            catch (BusinessLogicException blexception)
            {
                InsightLogger.Exception(blexception.Message, blexception, callerMethodName);
                return(Request.CreateResponse(HttpStatusCode.NotFound, DataProvider.PersonalizationResponseError <UserDeviceDTO>("400", blexception.Message, blexception.Message)));
            }
            catch (Exception exception)
            {
                //LoggerHelper.WriteToLog(exception + " - exception in controller action while retreving single userdevcie with deviceID : "
                //      + exception.ToString(), CoreConstants.Priority.High, CoreConstants.Category.Error);
                InsightLogger.Exception(exception.Message, exception, callerMethodName);
                return(Request.CreateResponse(HttpStatusCode.NotFound, DataProvider.PersonalizationResponseError <UserDeviceDTO>("400", exception.Message, exception.StackTrace)));
            }
        }
        public HttpResponseMessage GetUserBackend(string userID, string userBackendID)
        {
            string callerMethodName = string.Empty;

            try
            {
                //Get Caller Method name from CallerInformation class
                callerMethodName = CallerInformation.TrackCallerMethodName();
                InsightLogger.TrackEvent("PersonalizationAPIController :: Get backend method, api/personalizationapi/users/{userID}/backends/{userBackendID}");
                //check userid and userbackendid for null
                if (!(string.IsNullOrEmpty(userID) || string.IsNullOrEmpty(userBackendID)))
                {
                    UserBackend userbackend = new UserBackend();
                    PersonalizationResponseDTO <UserBackendDTO> ResponseUserBackend = userbackend.GetUserBackend(userID, userBackendID);
                    //if user backend avialable return response else not found
                    if (ResponseUserBackend.result != null)
                    {
                        return(Request.CreateResponse(HttpStatusCode.OK, ResponseUserBackend));
                    }

                    return(Request.CreateResponse(HttpStatusCode.OK, DataProvider.PersonalizationResponseError <UserBackendDTO>("400", "user does not have associated backends", "")));
                }
                else
                {
                    InsightLogger.TrackEvent("PersonalizationAPIController :: userid or userbackendid is null");

                    return(Request.CreateResponse(HttpStatusCode.BadRequest, DataProvider.PersonalizationResponseError <UserBackendDTO>("400", "userid or associated deviceid empty or null", "")));
                }
            }
            catch (DataAccessException dalexception)
            {
                InsightLogger.Exception(dalexception.Message, dalexception, callerMethodName);
                return(Request.CreateResponse(HttpStatusCode.NotFound, DataProvider.PersonalizationResponseError <UserBackendDTO>("400", dalexception.Message, dalexception.Message)));
            }
            catch (BusinessLogicException blexception)
            {
                InsightLogger.Exception(blexception.Message, blexception, callerMethodName);
                return(Request.CreateResponse(HttpStatusCode.NotFound, DataProvider.PersonalizationResponseError <UserBackendDTO>("400", blexception.Message, blexception.Message)));
            }
            catch (Exception exception)
            {
                InsightLogger.Exception(exception.Message, exception, callerMethodName);
                //LoggerHelper.WriteToLog(exception + " - exception in controller action while retreving single userbackend : "
                //      + exception.ToString(), CoreConstants.Priority.High, CoreConstants.Category.Error);
                return(Request.CreateResponse(HttpStatusCode.NotFound, DataProvider.PersonalizationResponseError <UserBackendDTO>("400", exception.Message, exception.StackTrace)));
            }
        }
Ejemplo n.º 5
0
 /// <summary>
 /// method to form error response
 /// </summary>
 /// <typeparam name="T">takes type as input</typeparam>
 /// <param name="code">takes code as input</param>
 /// <param name="shorttext">takes short text as input</param>
 /// <param name="longtext">takes long text as input</param>
 /// <returns>returns error response</returns>
 public static PersonalizationResponseDTO <T> PersonalizationResponseError <T>(string code, string shorttext, string longtext)
 {
     try
     {
         var ResponseBackends = new PersonalizationResponseDTO <T>();
         ResponseBackends.result = default(T);
         //call errordto method to pass error in to response dto
         ResponseBackends.error = new ErrorDTO(code, shorttext, longtext);
         return(ResponseBackends);
     }
     catch (Exception exception)
     {
         LoggerHelper.WriteToLog(exception + " - exception in dataprovider while instantiating personalizationresponse error:- "
                                 + exception.ToString(), CoreConstants.Priority.High, CoreConstants.Category.Error);
         throw new Exception();
     }
 }
Ejemplo n.º 6
0
        /// <summary>
        /// method to get single userbackend
        /// </summary>
        /// <param name="userID">takes userid as input</param>
        /// <param name="userBackendID">takes user backend id as input</param>
        /// <returns>returns user backend with id associated to user in the form of personalization response</returns>
        public PersonalizationResponseDTO <UserBackendDTO> GetUserBackend(string userID, string userBackendID)
        {
            string callerMethodName = string.Empty;

            try
            {
                //Get Caller Method name from CallerInformation class
                callerMethodName = CallerInformation.TrackCallerMethodName();
                UserBackendDAL    userbackenddal    = new UserBackendDAL();
                UserBackendEntity userbackendentity = userbackenddal.GetUserBackend(userID, userBackendID);
                SynchEntity       synch             = userbackenddal.GetBackendSynch(userID, userBackendID);
                //converting userbackend entity to Response data transfer object
                var ResponseUserBackend = new PersonalizationResponseDTO <UserBackendDTO>();
                ///check for null
                if (userbackendentity != null)
                {
                    UserBackendDTO userbackenddto = UserBackendEntityDTOMapper(userbackendentity);
                    //adding synch to user backend
                    if (synch != null)
                    {
                        SynchDTO synchdto = DataProvider.ResponseObjectMapper <SynchDTO, SynchEntity>(synch);
                        userbackenddto.synch = synchdto;
                    }
                    ResponseUserBackend.result = userbackenddto;
                }
                else
                {
                    ResponseUserBackend.result = null;
                }
                return(ResponseUserBackend);
            }
            catch (DataAccessException DALexception)
            {
                throw DALexception;
            }
            catch (Exception exception)
            {
                InsightLogger.Exception(exception.Message, exception, callerMethodName);
                //LoggerHelper.WriteToLog(exception + " - Error in BL while retreiving single userbackend : "
                //+exception.ToString(), CoreConstants.Priority.High, CoreConstants.Category.Error);
                throw new BusinessLogicException();
            }
        }
        public HttpResponseMessage PutUsers(PersonalizationRequsetDTO personalizationrequset)
        {
            string callerMethodName = string.Empty;

            try
            {
                //Get Caller Method name from CallerInformation class
                callerMethodName = CallerInformation.TrackCallerMethodName();
                InsightLogger.TrackEvent("PersonalizationAPIController ::endpoint : api/personalizationapi/users/{userID}, action: start put user");
                //BL object instances created
                Personalization personalization = new Personalization();
                UserBackend     userbackend     = new UserBackend();
                UserDevice      userdevice      = new UserDevice();
                //if userID is available in requset then check user exist or not.
                if (personalizationrequset != null && !string.IsNullOrEmpty(personalizationrequset.user.UserID))
                {
                    Boolean isUserExists = personalization.CheckUser(personalizationrequset.user.UserID);
                    Boolean isDevicesProvided, isBackendsProvided;

                    //retrackting individual objects from request
                    IEnumerable <UserDeviceDTO>  userdevicesdto = personalizationrequset.user.userdevices;
                    IEnumerable <UserBackendDTO> userbackendsdto = personalizationrequset.user.userbackends;
                    UserDTO    user       = personalizationrequset.user;
                    UserEntity userentity = personalization.UserEntityGenerator(user);
                    IEnumerable <UserDeviceEntity>  userprovideddevices  = null;
                    IEnumerable <UserBackendEntity> userprovidedbackends = null;

                    //to check if requset has userdevices or not
                    if (userdevicesdto != null)
                    {
                        isDevicesProvided   = true;
                        userprovideddevices = userdevice.UserDeviceEntityGenerator(userdevicesdto);
                    }
                    else
                    {
                        isDevicesProvided = false;
                    }

                    //to check if requset has userbackends or not
                    if (userbackendsdto != null)
                    {
                        isBackendsProvided   = true;
                        userprovidedbackends = userbackend.UserBackendEntityGenerator(userbackendsdto);
                    }
                    else
                    {
                        isBackendsProvided = false;
                    }
                    UserDTO updateduser;
                    //create if user not exists else update
                    if (!isUserExists)
                    {
                        InsightLogger.TrackEvent("PersonalizationAPIController :: endpoint : api/personalizationapi/users/{userID}, action: check user, response: false,userID: " + personalizationrequset.user.UserID);
                        personalization.CreateUser(userentity);
                        InsightLogger.TrackEvent("PersonalizationAPIController :: endpoint : api/personalizationapi/users/{userID}, action: create new user, response: success,userID: " + personalizationrequset.user.UserID);
                        //add user devices if provided in request
                        if (isDevicesProvided)
                        {
                            InsightLogger.TrackEvent("PersonalizationAPIController :: endpoint : api/personalizationapi/users/{userID}, action: devices provided, response: true");
                            userdevice.AddDevices(userprovideddevices.ToList());
                            InsightLogger.TrackEvent("PersonalizationAPIController :: endpoint : api/personalizationapi/users/{userID}, action: create and/or associate devices to user, response: success");
                        }
                        //associate user backends if provided in request other wise associate all backends in system
                        if (isBackendsProvided)
                        {
                            InsightLogger.TrackEvent("PersonalizationAPIController :: endpoint : api/personalizationapi/users/{userID}, action: backends provided, response: true");
                            userbackend.AddBackends(userprovidedbackends.ToList());
                            InsightLogger.TrackEvent("PersonalizationAPIController :: endpoint : api/personalizationapi/users/{userID}, action: create and/or associate backends to user, response: success");
                        }
                        else
                        {
                            InsightLogger.TrackEvent("PersonalizationAPIController :: endpoint : api/personalizationapi/users/{userID}, action: backends provided, response: false");
                            userbackend.AddAllBackends(user.UserID);
                            InsightLogger.TrackEvent("PersonalizationAPIController :: endpoint : api/personalizationapi/users/{userID}, action: create and/or associate all backends to user, response: success");
                        }
                        updateduser = personalization.GetUser(personalizationrequset.user.UserID);
                        personalization.TriggerUserRequests(personalizationrequset.user.UserID, updateduser.userbackends);
                        InsightLogger.TrackEvent("PersonalizationAPIController :: endpoint : api/personalizationapi/users/{userID}, action: trigger a user requests update, response: success");
                        int SynchTime = personalization.CalcSynchTime(userprovidedbackends);
                        InsightLogger.TrackEvent("PersonalizationAPIController :: endpoint : api/personalizationapi/users/{userID}, action: calculate synch waiting time, response: success, synchWaitingtime:" + SynchTime);
                    }
                    else
                    {
                        InsightLogger.TrackEvent("PersonalizationAPIController :: endpoint : api/personalizationapi/users/{userID}, action: check user, response: true");
                        personalization.UpdateUserProp(userentity);
                        //remove existing devices to user and add the provided userdevices in requset
                        if (isDevicesProvided)
                        {
                            InsightLogger.TrackEvent("PersonalizationAPIController ::  endpoint : api/personalizationapi/users/{userID}, action: devices provided, response: true");
                            userdevice.RemoveDevices(personalizationrequset.user.UserID);
                            InsightLogger.TrackEvent("PersonalizationAPIController ::  endpoint : api/personalizationapi/users/{userID}, action: remove all existing associated devices , response: success");
                            userdevice.AddDevices(userprovideddevices.ToList());
                            InsightLogger.TrackEvent("PersonalizationAPIController ::  endpoint : api/personalizationapi/users/{userID}, action: create associated devices to user, response: success");
                        }
                        //remove existing backends to user and add the provided userbackends in requset
                        if (isBackendsProvided)
                        {
                            InsightLogger.TrackEvent("PersonalizationAPIController ::  endpoint : api/personalizationapi/users/{userID}, action: backends provided, response: true");
                            userbackend.RemoveBackends(personalizationrequset.user.UserID);
                            InsightLogger.TrackEvent("PersonalizationAPIController ::  endpoint : api/personalizationapi/users/{userID}, action: remove all existing associated backends , response: success");
                            userbackend.AddBackends(userprovidedbackends.ToList());
                            InsightLogger.TrackEvent("PersonalizationAPIController ::  endpoint : api/personalizationapi/users/{userID}, action: create associated backends to user, response: success");
                        }
                        else
                        {
                            userbackend.RemoveBackends(personalizationrequset.user.UserID);
                        }
                        updateduser = personalization.GetUser(personalizationrequset.user.UserID);
                    }
                    var ResponseUser = new PersonalizationResponseDTO <UserDTO>();
                    ResponseUser.result = updateduser;
                    ResponseUser.query  = personalizationrequset;
                    InsightLogger.TrackEvent("PersonalizationAPIController :: endpoint : api/personalizationapi/users/{userID}, action: populate user object to response, response: success, userid: " + personalizationrequset.user.UserID);
                    return(Request.CreateResponse(HttpStatusCode.OK, ResponseUser));
                }
                else
                {
                    InsightLogger.TrackEvent("PersonalizationAPIController ::endpoint : api/personalizationapi/users/{userID} , action : put user, response : userid is null");
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, DataProvider.PersonalizationResponseError <UserBackendDTO>("400", "Error in updating user", "")));
                }
            }
            catch (DataAccessException dalexception)
            {
                InsightLogger.Exception(dalexception.Message, dalexception, callerMethodName);
                return(Request.CreateResponse(HttpStatusCode.NotFound, DataProvider.PersonalizationResponseError <UserDTO>("400", dalexception.Message, dalexception.Message)));
            }
            catch (BusinessLogicException blexception)
            {
                InsightLogger.Exception(blexception.Message, blexception, callerMethodName);
                return(Request.CreateResponse(HttpStatusCode.NotFound, DataProvider.PersonalizationResponseError <UserDTO>("400", blexception.Message, blexception.Message)));
            }
            catch (Exception exception)
            {
                InsightLogger.Exception(exception.Message, exception, callerMethodName);
                //LoggerHelper.WriteToLog(exception + " - exception in controller action while inserting/updating user : "******"400", exception.Message, exception.StackTrace)));
            }
        }