예제 #1
0
        public async Task <HttpResponseMessage> Get(string keyword, int start)
        {
            HttpResponseMessage response = null;
            var session            = (Session)ContextOperator.Get(ContextKeys.SESSION_ID);
            var customerCollection = this._paymentTermService.Get(keyword, session.CompanyId, start);

            response = Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(true, "Succeeded", customerCollection));
            return(await Task.Run(() => response));
        }
예제 #2
0
        public async Task <HttpResponseMessage> Get(CustomerSearchFilter filter)
        {
            if (filter != null)
            {
                var session = (Session)ContextOperator.Get(ContextKeys.SESSION_ID);
                filter.CompanyId = session.CompanyId;
                var collection = await Task.Run(() => { return(this._customerService.Get(filter)); });

                return(Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(true, "Succeeded", collection)));
            }
            return(Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(false, MessageString.INVALID_REQUEST_PARMS, null)));
        }
        public async Task <HttpResponseMessage> Logout()
        {
            var session = (Session)ContextOperator.Get(ContextKeys.SESSION_ID);

            if (session != null && !string.IsNullOrEmpty(session.Id))
            {
                this._sessionService.Delete(session.Id);
                return(await Task.Run(() => Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(true, "Logout", null))));
            }

            return(await Task.Run(() => Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(false, MessageString.INVALID_REQUEST_PARMS, null))));
        }
예제 #4
0
        public async Task <HttpResponseMessage> Update(StoreModel item)
        {
            if (ModelState.IsValid)
            {
                var session = (Session)ContextOperator.Get(ContextKeys.SESSION_ID);
                item.UpdatedBy = session.UserId;
                await Task.Run(() => { this._storeService.Update(item); });

                return(Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(true, "Success", null)));
            }
            return(Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(false, MessageString.INVALID_REQUEST_PARMS, null)));
        }
예제 #5
0
        public async Task <HttpResponseMessage> Update(PaymentTermModel item)
        {
            if (ModelState.IsValid)
            {
                var session     = (Session)ContextOperator.Get(ContextKeys.SESSION_ID);
                var requestInfo = ContextOperator.Get(ContextKeys.REQUEST_INFO_KEY) as Request;

                this._paymentTermService.Update(item, requestInfo, session);
                return(await Task.Run(() => Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(true, "Success", null))));
            }

            return(await Task.Run(() => Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(false, MessageString.INVALID_REQUEST_PARMS, null))));
        }
        public async Task <HttpResponseMessage> Add(SupplierModel item)
        {
            if (ModelState.IsValid)
            {
                var session = (Session)ContextOperator.Get(ContextKeys.SESSION_ID);
                item.CompanyId = session.CompanyId;
                item.CreatedBy = session.UserId;
                this._supplierService.Add(item);
                return(await Task.Run(() => Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(true, "Success", null))));
            }

            return(await Task.Run(() => Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(false, MessageString.INVALID_REQUEST_PARMS, null))));
        }
        public async Task <HttpResponseMessage> Reset(string token, string password)
        {
            if (!string.IsNullOrEmpty(token) && !string.IsNullOrEmpty(password))
            {
                //validate token.
                Tuple <bool, string> result = this._tokenService.IsValid(token);
                if (result != null)
                {
                    if (result.Item1 && !string.IsNullOrEmpty(result.Item2))
                    {
                        //check user exist or not.
                        var user = this._accountService.GetById(result.Item2);
                        if (user != null)
                        {
                            //encrypte the password.
                            var encryptedPassword = EncryptionDecryption.EncryptString(password, user.Email, AppSettingManager.Salt);
                            this._accountService.ResetPassword(encryptedPassword, user.Id);
                            //update async token
                            Task.Run(() => this._tokenService.Deactivate(token));
                            //log change password activity.
                            var requestInfo = ContextOperator.Get(ContextKeys.REQUEST_INFO_KEY) as Request;
                            var actionLog   = new ActivityLog
                            {
                                Id             = Guid.NewGuid().ToString("N"),
                                ActivityType   = (byte)ActivityType.System,
                                TargetObjectId = user.Id,
                                CreatedBy      = user.Id,
                                Message        = ActionLogMessage.CHANGED_PASSWORD,
                                CreatedOn      = DateTime.UtcNow,
                                Platform       = requestInfo?.Platform,
                                Browser        = requestInfo?.Browser,
                                HostAddress    = requestInfo?.HostAddress,
                                HostName       = requestInfo?.HostName,
                                IsMobileDevice = requestInfo?.IsMobileDevice,
                                Version        = requestInfo?.Version,
                                URI            = requestInfo?.URI
                            };
                            //add async action log.
                            Task.Run(() => this._actionLogService.Add(actionLog));

                            return(await Task.Run(() => Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(true, MessageString.CHANGED_PASSWORD, null))));
                        }
                        return(await Task.Run(() => Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(false, MessageString.USER_NOT_EXISTS, null))));
                    }
                }
                return(await Task.Run(() => Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(false, MessageString.INVALID_TOKEN, null))));
            }
            return(await Task.Run(() => Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(false, MessageString.INVALID_REQUEST_PARMS, null))));
        }
        public async Task <HttpResponseMessage> Login(LoginModel item)
        {
            if (ModelState.IsValid)
            {
                item.Password = EncryptionDecryption.EncryptString(item.Password, item.Email, AppSettingManager.Salt);
                var loginInfo = this._accountService.Login(item);
                if (loginInfo != null)
                {
                    var session = new Session
                    {
                        Id        = Guid.NewGuid().ToString("N"),
                        UserId    = loginInfo.Id,
                        CompanyId = loginInfo.CompanyId,
                        CreatedOn = DateTime.UtcNow
                    };
                    this._sessionService.Add(session);

                    //hash userId, companyId and sessionId
                    loginInfo.Id        = EncryptionDecryption.EncryptString(loginInfo.Id, AppSettingManager.Password, AppSettingManager.Salt);
                    loginInfo.CompanyId = EncryptionDecryption.EncryptString(loginInfo.CompanyId, AppSettingManager.Password, AppSettingManager.Salt);
                    loginInfo.SessionId = EncryptionDecryption.EncryptString(session.Id, AppSettingManager.Password, AppSettingManager.Salt);


                    var requestInfo  = ContextOperator.Get(ContextKeys.REQUEST_INFO_KEY) as Request;
                    var loginHistory = new LoginHistory
                    {
                        Id             = Guid.NewGuid().ToString("N"),
                        UserId         = loginInfo.Id,
                        CreatedOn      = DateTime.UtcNow,
                        Platform       = requestInfo?.Platform,
                        Browser        = requestInfo?.Browser,
                        HostAddress    = requestInfo?.HostAddress,
                        HostName       = requestInfo?.HostName,
                        IsMobileDevice = requestInfo?.IsMobileDevice,
                        Version        = requestInfo?.Version,
                        URI            = requestInfo?.URI
                    };
                    this._loginHistoryService.AddLog(loginHistory);

                    var response = Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(true, MessageString.LOGGEDIN, loginInfo));

                    return(await Task.Run(() => response));
                }
            }

            return(await Task.Run(() => Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(false, MessageString.INVALID_REQUEST_PARMS, null))));
        }
예제 #9
0
        public async Task <HttpResponseMessage> Update(CurrencyModel item)
        {
            if (ModelState.IsValid)
            {
                var session = (Session)ContextOperator.Get(ContextKeys.SESSION_ID);
                if (session == null)
                {
                    return(await Task.Run(() => Request.CreateResponse(HttpStatusCode.Unauthorized, new ResponseMessage <object>(false, MessageString.INVALID_REQUEST_PARMS, null))));
                }

                item.CompanyId = session.CompanyId;
                this._currencyService.Update(item);
                return(await Task.Run(() => Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(true, "Success", null))));
            }

            return(await Task.Run(() => Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(false, MessageString.INVALID_REQUEST_PARMS, null))));
        }
        public async Task <HttpResponseMessage> ExecuteAuthorizationFilterAsync(HttpActionContext actionContext, CancellationToken cancellationToken, Func <Task <HttpResponseMessage> > continuation)
        {
            //get request information from request.
            var requestInfo = actionContext.Request.GetRequestInfo();

            if (requestInfo != null)
            {
                ContextOperator.Set(ContextKeys.REQUEST_INFO_KEY, requestInfo);
            }

            if (SkipAuthorization(actionContext))
            {
                return(await continuation());
            }

            //read session id from request header.
            var sessionId = actionContext.Request.GetSessionId();

            if (!string.IsNullOrEmpty(sessionId))
            {
                //Decrypt sessionId.
                sessionId            = EncryptionDecryption.DecryptString(sessionId, AppSettingManager.Password, AppSettingManager.Salt);
                this._sessionService = GlobalConfiguration.Configuration.DependencyResolver.GetService(typeof(ISessionService)) as ISessionService;

                if (this._sessionService == null)
                {
                    throw new ArgumentException("RSAuthorizationFilterAttribute.ISessionService");
                }

                var value = this._sessionService.GetById(sessionId);

                if (value != null)
                {
                    ContextOperator.Set(ContextKeys.SESSION_ID, value);
                    return(await continuation());
                }
            }


            return(actionContext.Request.CreateResponse(System.Net.HttpStatusCode.Unauthorized, new ResponseMessage <object>(false, "Unauthorized", null)));
        }