/// <summary>
        /// Stores or update user response details data in Microsoft Azure Table storage.
        /// </summary>
        /// <param name="entity">Holds user response detail entity data.</param>
        /// <returns>A task that represents user response entity data is saved or updated.</returns>
        private async Task <TableResult> StoreOrUpdateEntityAsync(UserResponseEntity entity)
        {
            await this.EnsureInitializedAsync();

            TableOperation addOrUpdateOperation = TableOperation.InsertOrReplace(entity);

            return(await this.ResponsesCloudTable.ExecuteAsync(addOrUpdateOperation));
        }
Esempio n. 2
0
        /// <summary>
        /// Update user request details to Microsoft Azure Table storage.
        /// </summary>
        /// <param name="activity">Represents activity for current turn of bot.</param>
        /// <param name="userRequestDetails">User new request detail.</param>
        /// <returns>Represent a task queued for operation.</returns>
        public async Task <bool> UpdateUserRequestDetailsAsync(IInvokeActivity activity, AddUserResponseRequestDetail userRequestDetails)
        {
            if (userRequestDetails != null && activity != null)
            {
                var userResponse = new UserResponseEntity()
                {
                    QuestionLabel   = userRequestDetails.Label,
                    QuestionText    = userRequestDetails.Question,
                    ResponseText    = userRequestDetails.Response,
                    UserId          = activity.From.AadObjectId,
                    LastUpdatedDate = DateTime.UtcNow,
                    ResponseId      = userRequestDetails.ResponseId,
                };

                return(await this.userResponseStorageProvider.UpsertUserResponseAsync(userResponse));
            }

            return(false);
        }
Esempio n. 3
0
        /// <summary>
        /// Store user request details to Microsoft Azure Table storage.
        /// </summary>
        /// <param name="aadObjectId">Represents Azure active directory object id of user for current turn of bot.</param>
        /// <param name="userRequestDetails">User new request detail.</param>
        /// <returns>Represent a task queued for operation.</returns>
        public async Task <bool> AddNewUserRequestDetailsAsync(string aadObjectId, AddUserResponseRequestDetail userRequestDetails)
        {
            if (userRequestDetails != null)
            {
                var userResponse = new UserResponseEntity()
                {
                    QuestionLabel   = userRequestDetails.Label,
                    QuestionText    = userRequestDetails.Question,
                    ResponseText    = userRequestDetails.Response,
                    ResponseId      = Guid.NewGuid().ToString(),
                    UserId          = aadObjectId,
                    LastUpdatedDate = DateTime.UtcNow,
                };

                return(await this.userResponseStorageProvider.UpsertUserResponseAsync(userResponse));
            }

            return(false);
        }
Esempio n. 4
0
        public async Task<IActionResult> PostAsync([FromBody] UserResponseEntity userResponseEntity)
        {
            try
            {
                if (string.IsNullOrEmpty(userResponseEntity?.UserId))
                {
                    this.logger.LogError("Error while creating user response details data in Microsoft Azure Table storage.");
                    return this.GetErrorResponse(StatusCodes.Status400BadRequest, "Error while creating user response details data in Microsoft Azure Table storage.");
                }

                var claims = this.GetUserClaims();
                this.RecordEvent(RecordUserHTTPPostCall, claims.FromId);
                return this.Ok(await this.userResponseStorageProvider.UpsertUserResponseAsync(userResponseEntity));
            }
            catch (Exception ex)
            {
                this.logger.LogError(ex, "Error while making call to user response service.");
                throw;
            }
        }
        /// <summary>
        /// Delete user response details data in Microsoft Azure Table storage.
        /// </summary>
        /// <param name="userResponseIds">Holds user response Id data.</param>
        /// <returns>A task that represents user response entity data is saved or updated.</returns>
        public async Task <bool> DeleteEntityAsync(IEnumerable <string> userResponseIds)
        {
            if (userResponseIds == null)
            {
                throw new ArgumentNullException(nameof(userResponseIds));
            }

            await this.EnsureInitializedAsync();

            var entity = new UserResponseEntity();

            foreach (var userResponseId in userResponseIds)
            {
                string responseIdCondition            = TableQuery.GenerateFilterCondition(RowKey, QueryComparisons.Equal, userResponseId);
                TableQuery <UserResponseEntity> query = new TableQuery <UserResponseEntity>().Where(responseIdCondition);
                var queryResult = await this.ResponsesCloudTable.ExecuteQuerySegmentedAsync(query, null);

                entity = queryResult?.Results[0];
                TableOperation deleteOperation = TableOperation.Delete(entity);
                var            result          = await this.ResponsesCloudTable.ExecuteAsync(deleteOperation);
            }

            return(true);
        }
Esempio n. 6
0
        public JsonResult Login(FormCollection formCol)
        {
            string loginUrl = string.Empty;

            try
            {
                string domain = ConfigurationManager.AppSettings["domain"].ToString();
                loginUrl = string.Format(ConfigurationManager.AppSettings["loginUrl"].ToString(), domain);

                string userName = formCol["userName"];
                string Password = formCol["Password"];

                bool   result = false;
                string retmsg = string.Empty;

                userName = userName.Trim();
                if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(Password))
                {
                    UserRequestEntity user = new UserRequestEntity();

                    user.userCode = userName;
                    user.passWord = Password;
                    user.type     = 1;
                    user.sysInfo  = "web";

                    DataDAL biz = new DataDAL();

                    UserResponseEntity response = new UserResponseEntity();

                    RetMsg msg = biz.GetUserInfo(loginUrl, user);

                    if (!msg.IsSysError)
                    {
                        response = DataJsonSerializer <UserResponseEntity> .JsonToEntity(msg.Message);

                        if (response.StatusCode == 200)
                        {
                            Session["userCode"]  = response.Data.UserCode;
                            Session["userName"]  = response.Data.UserName;
                            Session["SessionId"] = response.Data.SessionId;

                            result = true; //sessionId不为空,用户登录成功
                        }
                        else
                        {
                            retmsg = response.ErrorMsg;
                        }
                    }
                    else
                    {
                        retmsg = msg.Message;
                    }
                }
                else
                {
                    retmsg = "用户名和密码不能为空";
                }

                return(Json(new { Result = result, Msg = retmsg }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(new { Result = false, Msg = ex.Message }, JsonRequestBehavior.AllowGet));
            }
        }
        /// <summary>
        /// Stores or update user response details data in Microsoft Azure Table storage.
        /// </summary>
        /// <param name="userResponseEntity">Holds user response detail entity data.</param>
        /// <returns>A task that represents user response entity data is saved or updated.</returns>
        public async Task <bool> UpsertUserResponseAsync(UserResponseEntity userResponseEntity)
        {
            var result = await this.StoreOrUpdateEntityAsync(userResponseEntity);

            return(result.HttpStatusCode == (int)HttpStatusCode.NoContent);
        }