Exemplo n.º 1
0
        /// <summary>
        /// method which converts userbackend entity to dto by using mapper
        /// </summary>
        /// <param name="userbackendentity">takes user backend entity as input</param>
        /// <returns>returns user backend dto</returns>
        public UserBackendDTO UserBackendEntityDTOMapper(UserBackendEntity userbackendentity)
        {
            //convertig entity to data transfer object using mapper
            UserBackendDTO userbackenddto = DataProvider.ResponseObjectMapper <UserBackendDTO, UserBackendEntity>(userbackendentity);
            Backend        backenddto     = DataProvider.ResponseObjectMapper <Backend, UserBackendEntity>(userbackendentity);

            userbackenddto.backend = backenddto;
            return(userbackenddto);
        }
Exemplo n.º 2
0
        /// <summary>
        /// method which converts userbackend dto to entity by using mapper, first maps backenddto with userbackendentity
        /// </summary>
        /// <param name="userbackenddto">takes user backend dto as input</param>
        /// <returns>returns user backend entity</returns>
        public UserBackendEntity UserBackendDTOEntityMapper(UserBackendDTO userbackenddto)
        {
            //converting input backend data transfer object(dto) list to userbackend entity list by using property mapper
            Backend           backenddto        = userbackenddto.backend;
            UserBackendEntity userbackendentity = DataProvider.ResponseObjectMapper <UserBackendEntity, Backend>(backenddto);

            //adding missing properties like userID, partitionkey and Rowkey to entity
            userbackendentity.UserID       = userbackenddto.UserID;
            userbackendentity.PartitionKey = string.Concat(CoreConstants.AzureTables.UserBackendPK, userbackendentity.UserID);
            userbackendentity.RowKey       = userbackendentity.BackendID;
            return(userbackendentity);
        }
Exemplo n.º 3
0
        /// <summary>
        /// method to get all userbackends
        /// </summary>
        /// <param name="UserID">takes userid as input</param>
        /// <returns>returns list of user backend</returns>
        public IEnumerable <UserBackendDTO> GetUserAllBackends(string UserID)
        {
            string callerMethodName = string.Empty;

            try
            {
                //Get Caller Method name from CallerInformation class
                callerMethodName = CallerInformation.TrackCallerMethodName();
                UserBackendDAL userbackenddal = new UserBackendDAL();
                //calling data access layer method to get user backends
                List <UserBackendEntity> alluserbackends = userbackenddal.GetUserAllBackends(UserID);
                //calling data access layer method to get user backend synch
                List <SynchEntity>    allbackendsynch     = userbackenddal.GetAllUserBackendsSynch(UserID);
                List <UserBackendDTO> userbackendsdtolist = new List <UserBackendDTO>();
                //check for null
                if (alluserbackends != null && alluserbackends.Count > 0)
                {
                    //converting userdevice entity to userdevice data transfer object
                    foreach (UserBackendEntity userbackendentity in alluserbackends)
                    {
                        UserBackendDTO userbackenddto = UserBackendEntityDTOMapper(userbackendentity);
                        SynchEntity    synchentity    = allbackendsynch.Where(m => m.RowKey.Equals(userbackendentity.BackendID)).FirstOrDefault();
                        //if user backend synch available then convert to dto
                        if (synchentity != null)
                        {
                            SynchDTO synchdto = DataProvider.ResponseObjectMapper <SynchDTO, SynchEntity>(synchentity);
                            userbackenddto.synch = synchdto;
                        }

                        userbackendsdtolist.Add(userbackenddto);
                    }
                }
                else
                {
                    userbackendsdtolist = null;
                }

                return((IEnumerable <UserBackendDTO>)userbackendsdtolist);
            }
            catch (DataAccessException DALexception)
            {
                throw DALexception;
            }
            catch (Exception exception)
            {
                InsightLogger.Exception(exception.Message, exception, callerMethodName);
                //LoggerHelper.WriteToLog(exception + " - Error in BL while retreiving userbackends : "
                //+exception.ToString(), CoreConstants.Priority.High, CoreConstants.Category.Error);
                throw new BusinessLogicException();
            }
        }
Exemplo n.º 4
0
        //Gets the Avaliable backend deatils returned by Personalization API
        public async Task <List <UserBackendDTO> > BackEndInfo()
        {
            //creates list Backend model object
            List <UserBackendDTO> backends = new List <UserBackendDTO>();

            try
            {
                //Api Controller object initialization
                APIController apiControllerObj = new APIController();
                //Gets the List of backends returned by the Personalization API
                string strbackEndApp = await apiControllerObj.Getbackendapplications();

                if (!string.IsNullOrEmpty(strbackEndApp))
                {
                    //Deseralize the result returned by the API
                    BackendJsonData backendjsonResponse = JsonConvert.DeserializeObject <BackendJsonData>(strbackEndApp);
                    //Checks whether the JSON response is not null
                    if (backendjsonResponse != null)
                    {
                        //Iterate backend json format result and bind to Model
                        foreach (BackendJsonResult backendid in backendjsonResponse.Results)
                        {
                            //Create  UserBackendDTO Model object
                            UserBackendDTO BackendObj = new UserBackendDTO();
                            BackendObj.backend = new BackendDTO();
                            //Get Backend id
                            BackendObj.backend.BackendID   = backendid.BackendID;
                            BackendObj.backend.BackendName = backendid.BackendName;
                            //Adding the Model object to the list
                            backends.Add(BackendObj);
                        }
                    }
                }
                //Return list of backends
                return(backends);
            }
            catch (Exception exception)
            {
                LoggerHelper.WriteToLog(exception + " - Error while creating client context : "
                                        + exception.ToString(), CoreConstants.Priority.High, CoreConstants.Category.Error);
                throw new DataAccessException("Error in BackEndInfo");
            }
        }
Exemplo n.º 5
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();
            }
        }
Exemplo n.º 6
0
        public async Task <UserBackendDTO> GetBackendDTO(int id)
        {
            var user = await _repository.GetByIdAsync(id);

            var userInformations = user.UserInformation;

            var userBackendDTO = new UserBackendDTO();

            userBackendDTO.Id              = user.Id;
            userBackendDTO.Name            = userInformations.Name;
            userBackendDTO.Login           = user.Login;
            userBackendDTO.Password        = user.Password;
            userBackendDTO.Email           = userInformations.Email;
            userBackendDTO.IdRealm         = userInformations.Realm.Id;
            userBackendDTO.IdRegion        = userInformations.Region.Id;
            userBackendDTO.IdBusinessLevel = userInformations.BusinessLevel.Id;

            return(userBackendDTO);
        }
Exemplo n.º 7
0
        //Gets the user backend deatils returned by Personalization API
        public async Task <UserDTO> Getuserdetails()
        {
            //creates list Backend model object
            List <UserBackendDTO> userBackend = new List <UserBackendDTO>();
            //creates list Device model object
            List <UserDeviceDTO> UserDevicedetails = new List <UserDeviceDTO>();

            try
            {
                //Api Controller object initialization
                APIController apiControllerObj = new APIController();
                //NewUser model object initialization
                UserDTO userdetails = new UserDTO();
                //Gets the user details returned by Personalization API
                string strUserExisits = await apiControllerObj.Getuserinfo(userid);

                if (!string.IsNullOrEmpty(strUserExisits))
                {
                    //Deseralize the result returned by the API
                    NewuserJsonData newuserjsonResponse = JsonConvert.DeserializeObject <NewuserJsonData>(strUserExisits);
                    //Checks whether the JSON response is not null
                    if (newuserjsonResponse.userResults != null)
                    {
                        UserBackendJsonData userBackendjsonResponse = JsonConvert.DeserializeObject <UserBackendJsonData>(strUserExisits);
                        UserDeviceJsonData  userDevicejsonResponse  = JsonConvert.DeserializeObject <UserDeviceJsonData>(strUserExisits);
                        //Checks whether the JSON response is not null
                        if (newuserjsonResponse != null)
                        {
                            //Getting All updated user info
                            userdetails.UserID     = newuserjsonResponse.userResults.UserID;
                            userdetails.FirstName  = newuserjsonResponse.userResults.FirstName;
                            userdetails.LastName   = newuserjsonResponse.userResults.LastName;
                            userdetails.Fullname   = newuserjsonResponse.userResults.Fullname;
                            userdetails.Email      = newuserjsonResponse.userResults.Email;
                            userdetails.Domain     = newuserjsonResponse.userResults.Domain;
                            userdetails.DeviceName = newuserjsonResponse.userResults.DeviceName;
                            userdetails.DeviceOS   = newuserjsonResponse.userResults.DeviceOS;
                        }
                        //Checks whether the JSON response is not null
                        if (userBackendjsonResponse != null && userBackendjsonResponse.userBackendResults.userBackenddetails != null)
                        {
                            //Iterate user backend json format result and bind to Model
                            foreach (userBackenddetails UserbackendInfo in userBackendjsonResponse.userBackendResults.userBackenddetails)
                            {
                                //Create Model object
                                UserBackendDTO BackendObj = new UserBackendDTO();
                                BackendObj.UserID  = UserbackendInfo.UserID;
                                BackendObj.backend = new BackendDTO();
                                //setting the properties of Model
                                BackendObj.backend.BackendID                 = UserbackendInfo.userBackend.BackendID;
                                BackendObj.backend.BackendName               = UserbackendInfo.userBackend.BackendName;
                                BackendObj.backend.DefaultUpdateFrequency    = UserbackendInfo.userBackend.DefaultUpdateFrequency;
                                BackendObj.backend.AverageAllRequestsLatency = UserbackendInfo.userBackend.AverageAllRequestsLatency;
                                BackendObj.backend.AverageAllRequestsSize    = UserbackendInfo.userBackend.AverageAllRequestsSize;
                                BackendObj.backend.AverageRequestLatency     = UserbackendInfo.userBackend.AverageRequestLatency;
                                BackendObj.backend.AverageRequestSize        = UserbackendInfo.userBackend.AverageRequestSize;
                                BackendObj.backend.ExpectedLatency           = UserbackendInfo.userBackend.ExpectedLatency;
                                DateTime?expdate = UserbackendInfo.userBackend.ExpectedUpdate;
                                if (expdate != null)
                                {
                                    BackendObj.backend.ExpectedUpdate = expdate.Value;
                                }
                                BackendObj.backend.LastAllRequestsLatency = UserbackendInfo.userBackend.LastAllRequestsLatency;
                                BackendObj.backend.LastAllRequestsSize    = UserbackendInfo.userBackend.LastAllRequestsSize;
                                BackendObj.backend.LastRequestLatency     = UserbackendInfo.userBackend.LastRequestLatency;
                                BackendObj.backend.LastRequestSize        = UserbackendInfo.userBackend.LastRequestSize;
                                DateTime?lstdate = UserbackendInfo.userBackend.LastUpdate;
                                if (lstdate != null)
                                {
                                    BackendObj.backend.LastUpdate = lstdate.Value;
                                }
                                BackendObj.backend.OpenApprovals           = UserbackendInfo.userBackend.OpenApprovals;
                                BackendObj.backend.OpenRequests            = UserbackendInfo.userBackend.OpenRequests;
                                BackendObj.backend.TotalBatchRequestsCount = UserbackendInfo.userBackend.TotalBatchRequestsCount;
                                BackendObj.backend.TotalRequestsCount      = UserbackendInfo.userBackend.TotalRequestsCount;
                                BackendObj.backend.UpdateTriggered         = UserbackendInfo.userBackend.UpdateTriggered;
                                BackendObj.backend.UrgentApprovals         = UserbackendInfo.userBackend.UrgentApprovals;

                                // BackendObj.backend.MissingConfirmationsLimit = UserbackendInfo.userBackend.MissingConfirmationsLimit;
                                //Adding the Model object to the list
                                userBackend.Add(BackendObj);
                                userdetails.userbackends = userBackend;
                            }
                        }
                        //Checks whether the JSON response is not null
                        if (userDevicejsonResponse != null && userDevicejsonResponse.userDevicesResults.userDevicedetails != null)
                        {
                            //Iterate user devices json format result and bind to Model
                            foreach (userDevicedetails userDeviceInfo in userDevicejsonResponse.userDevicesResults.userDevicedetails)
                            {
                                //Create Model object
                                UserDeviceDTO deviceObj = new UserDeviceDTO();
                                // Get user device details
                                deviceObj.UserID                   = userDeviceInfo.UserID;
                                deviceObj.device                   = new DeviceDTO();
                                deviceObj.device.DeviceID          = userDeviceInfo.userDevices.DeviceID;
                                deviceObj.device.DeviceName        = userDeviceInfo.userDevices.DeviceName;
                                deviceObj.device.DeviceBrand       = userDeviceInfo.userDevices.DeviceBrand;
                                deviceObj.device.DeviceModel       = userDeviceInfo.userDevices.DeviceModel;
                                deviceObj.device.maxSynchReplySize = userDeviceInfo.userDevices.maxSynchReplySize;
                                // Add details to new model
                                UserDevicedetails.Add(deviceObj);
                                userdetails.userdevices = UserDevicedetails;
                            }
                        }
                    }
                }
                //Return user details as list object
                return(userdetails);
            }
            catch (Exception exception)
            {
                LoggerHelper.WriteToLog(exception + " - Error while creating client context : "
                                        + exception.ToString(), CoreConstants.Priority.High, CoreConstants.Category.Error);
                throw new DataAccessException("Error in Getuserdetails");
            }
        }
Exemplo n.º 8
0
        public UserBackendDTO AddRequsetsTasksCountToSynchResponse(List <RequestEntity> userbackendrequestslist, List <ApprovalEntity> userbackendapprovalslist, UserBackendEntity userbackend, SynchRequestDTO query, UserBackendDTO userbackenddto)
        {
            string callerMethodName = string.Empty;

            try
            {
                //Get Caller Method name from CallerInformation class
                callerMethodName = CallerInformation.TrackCallerMethodName();
                List <ApprovalRequestDTO> approvalrequestlist = new List <ApprovalRequestDTO>();
                InsightLogger.TrackEvent("SyncAPIController :: endpoint - api/synch/users/{userID}/backends, action: Loop through all requests in backend");
                //loop through each request in the userbackend
                foreach (RequestEntity request in userbackendrequestslist)
                {
                    ApprovalRequestDTO approvalrequest = new ApprovalRequestDTO();
                    RequestDTO         requestdto      = new RequestDTO();
                    //get approval associated to request
                    ApprovalEntity approval = userbackendapprovalslist.Find(x => x.RequestId == request.ID);
                    if (approval != null)
                    {
                        ApprovalDTO approvaldto = new ApprovalDTO();
                        approvaldto = DataProvider.ResponseObjectMapper <ApprovalDTO, ApprovalEntity>(approval);
                        approvalrequest.approval            = approvaldto;
                        userbackenddto.approvalsCount.Count = userbackenddto.approvalsCount.Count + 1;
                        //if request is updated
                        if (Rules.IsRequestUpdated(request, userbackend.DefaultUpdateFrequency))
                        {
                            InsightLogger.TrackEvent("SyncAPIController :: endpoint - api/synch/users/{userID}/backends, action: check request update, response: true");
                            //get request synch entity
                            RequestSynchEntity requestsynch = GetRequestSynch(request);
                            //check if requests which have changed since the last synch need to send in response or all requests.
                            if (Rules.IsTargetRequest(query, request, approval, requestsynch))
                            {
                                InsightLogger.TrackEvent("SyncAPIController :: endpoint - api/synch/users/{userID}/backends, action: Target request, response: true");
                                requestdto = DataProvider.ResponseObjectMapper <RequestDTO, RequestEntity>(request);
                                approvalrequest.request = requestdto;
                                InsightLogger.TrackEvent("SyncAPIController :: endpoint - api/synch/users/{userID}/backends, action: add request header to response, response: success");
                                //code here to populate extended depth
                                //code here to update request synch time stamp
                                AddUpdateRequestSynch(request, requestsynch, query.userId);
                                InsightLogger.TrackEvent("SyncAPIController :: endpoint - api/synch/users/{userID}/backends, action: Update request synch timestamp, response: success");
                                //requestsfulfilled = true;
                            }
                        }
                        else
                        {
                            InsightLogger.TrackEvent("SyncAPIController :: endpoint - api/synch/users/{userID}/backends, action: check request update, response: false");
                            //check if request update is in progress in service layer then send the latency in response
                            if (Rules.IsRequestUpdateInProgress(request))
                            {
                                InsightLogger.TrackEvent("SyncAPIController :: endpoint - api/synch/users/{userID}/backends, action: update in-progress, response: true");
                                approvalrequest.retryAfter = request.ExpectedLatency;
                                InsightLogger.TrackEvent("SyncAPIController :: endpoint - api/synch/users/{userID}/backends, action: Add expected request latancy to resposne as retry time, response: Success");
                            }
                            else
                            {
                                InsightLogger.TrackEvent("SyncAPIController :: endpoint - api/synch/users/{userID}/backends, action: update in-progress, response: false");
                                TriggerRequestUpdate(request, query.userId);
                                InsightLogger.TrackEvent("SyncAPIController :: endpoint - api/synch/users/{userID}/backends, action: trigger a Request update, response: success");
                                approvalrequest.retryAfter = Convert.ToInt32(Rules.RequestRetryTime(userbackend));
                                InsightLogger.TrackEvent("SyncAPIController :: endpoint - api/synch/users/{userID}/backends, action: Add request retrytime to response, response: success");
                            }
                            //requestsunfulfilled = true;
                        }
                        //add approval request to list which will be added to corresponding backend
                        approvalrequestlist.Add(approvalrequest);
                    }
                }
                userbackenddto.requests = approvalrequestlist;
                return(userbackenddto);
            }
            catch (DataAccessException DALexception)
            {
                throw DALexception;
            }
            catch (Exception exception)
            {
                InsightLogger.Exception(exception.Message, exception, callerMethodName);
                //LoggerHelper.WriteToLog(exception + " - Error in BL while adding all approvals count to response  : "
                //+ exception.ToString(), CoreConstants.Priority.High, CoreConstants.Category.Error);
                throw new BusinessLogicException();
            }
        }