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