Exemplo n.º 1
0
        public async Task <MessageOutputBase> UpdateListCheckItemKind([FromBody] UpdateListCheckItemKindRequest request)
        {
            MessageOutputBase result = null;

            request.UserName = GetCurrentUser();
            await Execute(flow =>
            {
                flow.StartRegisterFlow()
                .Add <CheckUserExistsStep>()
                .Add <CheckUserListExistsStep>()
                .Add <UpdateListCheckItemKindStep>();

                flow.
                When <UserNotFoundStep, UserNotFoundParams>(notFound =>
                {
                    result = notFound.Response;
                })
                .
                When <UserListNotFoundStep, UserListNotFoundParams>(notFound =>
                {
                    result = notFound.Response;
                })
                .When <UpdateListCheckItemKindStep, UpdateListCheckItemKindParams>(update =>
                {
                    result = update.Response;
                });
            }, request,
                          error =>
            {
                result = error;
            });

            return(result);
        }
Exemplo n.º 2
0
        public async Task <MessageOutputBase> Feed(GetUserFeedRequest request)
        {
            MessageOutputBase result = null;

            request.UserName = GetCurrentUser();

            await Execute(flow =>
            {
                flow.StartRegisterFlow()
                .Add <CheckUserExistsStep>()
                .Add <GetUserFeedStep>();

                flow.
                When <UserNotFoundStep, UserNotFoundParams>((notFound) =>
                {
                    result = notFound.Response;
                })
                .When <GetUserFeedStep, GetUserFeedParams>((fetch) =>
                {
                    result = fetch.ListsResponse;
                });
            }, request,
                          error =>
            {
                result = error;
            });

            return(result);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Производит резолвинг данных с текущим контекстом.
        /// </summary>
        /// <param name="context">Контекст.</param>
        /// <returns>Данные.</returns>
        public override async Task <object> Resolve(ResolveFieldContext <object> context)
        {
            var request = new GetUserListsRequest();

            request.UserName           = context.GetArgument <string>("userName");
            request.LastListId         = context.GetArgument <string>("lastListId");
            request.SelectedListNumber = context.GetArgument <string>("selectedListNumber");
            request.ForUserName        = context.UserContext.As <UserContext>().UserName;
            request.ForUserId          = context.UserContext.As <UserContext>().UserId;

            MessageOutputBase outputMessage = null;

            await Execute(flow =>
            {
                flow.StartRegisterFlow()
                .Add <CheckUserExistsStep>()
                .Add <FetchUserListsStep>();

                flow.
                When <UserNotFoundStep, UserNotFoundParams>((notFound) =>
                {
                    outputMessage = notFound.Response;
                })
                .When <FetchUserListsStep, FetchUserListsParams>((fetch) =>
                {
                    outputMessage = fetch.ListsResponse;
                });
            }, request,
                          context);

            ProcessErrors(context, outputMessage);

            return(outputMessage);
        }
Exemplo n.º 4
0
        public async Task <MessageOutputBase> RemoveList([FromBody] RemoveListRequest request)
        {
            MessageOutputBase result = null;

            request.UserName = GetCurrentUser();
            await Execute(flow =>
            {
                flow.StartRegisterFlow()
                .Add <CheckUserExistsStep>()
                .Add <CheckListExistsStep>()
                .Add <RemoveListStep>();

                flow.
                When <UserNotFoundStep, UserNotFoundParams>(notFound =>
                {
                    result = notFound.Response;
                })
                .
                When <ListNotFoundStep, ListNotFoundParams>(notFound =>
                {
                    result = notFound.Response;
                })
                .When <RemoveListStep, RemoveListParams>(remove =>
                {
                    result = remove.Response;
                });
            }, request,
                          error =>
            {
                result = error;
            });

            return(result);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Производит резолвинг данных с текущим контекстом.
        /// </summary>
        /// <param name="context">Контекст.</param>
        /// <returns>Данные.</returns>
        public override async Task <object> Resolve(ResolveFieldContext <object> context)
        {
            var input = context.GetArgument <AddNewListRequest>("list");

            input.UserName = context.UserContext.As <UserContext>().UserName;

            MessageOutputBase outputMessage = null;

            object result = null;

            await Execute(flow =>
            {
                flow.StartRegisterFlow()
                .Add <CheckUserExistsStep>()
                .Add <AddNewListStep>();

                flow.
                When <UserNotFoundStep, UserNotFoundParams>((notFound) =>
                {
                    outputMessage = notFound.Response;
                })
                .When <AddNewListStep, AddNewListParams>((add) =>
                {
                    outputMessage = add.Response;
                    result        = add.Response.List;
                });
            }, input,
                          context);

            ProcessErrors(context, outputMessage);

            return(result);
        }
Exemplo n.º 6
0
        public async Task <MessageOutputBase> StartFollowing([FromBody] StartFollowingRequest request)
        {
            MessageOutputBase result = null;

            request.UserName = GetCurrentUser();

            await Execute(flow =>
            {
                flow.StartRegisterFlow()
                .Add <CheckUserExistsStep>()
                .Add <StartFollowingStep>();

                flow.
                When <UserNotFoundStep, UserNotFoundParams>(notFound =>
                {
                    result = notFound.Response;
                })
                .When <StartFollowingStep, StartFollowingParams>(start =>
                {
                    result = start.Response;
                });
            }, request,
                          error =>
            {
                result = error;
            });

            return(result);
        }
Exemplo n.º 7
0
        public async Task <MessageOutputBase> RecoverPassword([FromBody] RecoverPasswordRequest request)
        {
            MessageOutputBase result = null;

            request.ClientIp = GetClientIp();

            await Execute(flow =>
            {
                flow.StartRegisterFlow()
                .Add <CheckRecaptchaStep>()
                .Add <CheckUserExistsStep>()
                .Add <RecoverPasswordStep>();

                flow.
                When <CheckRecaptchaStep, CheckRecaptchaParams>(recaptcha =>
                {
                    result = recaptcha.Response;
                }).
                When <UserNotFoundStep, UserNotFoundParams>(notFound =>
                {
                    result = notFound.Response;
                })
                .When <RecoverPasswordStep, RecoverPasswordParams>(recover =>
                {
                    result = recover.Response;
                });
            }, request,
                          error =>
            {
                result = error;
            });

            return(result);
        }
Exemplo n.º 8
0
        public async Task <MessageOutputBase> AddListItem([FromBody] AddNewListItemRequest request)
        {
            MessageOutputBase result = null;

            request.UserName = GetCurrentUser();
            await Execute(flow =>
            {
                flow.StartRegisterFlow()
                .Add <CheckUserExistsStep>()
                .Add <CheckListExistsStep>()
                .Add <AddNewListItemStep>();

                flow.
                When <UserNotFoundStep, UserNotFoundParams>(notFound =>
                {
                    result = notFound.Response;
                })
                .When <ListNotFoundStep, ListNotFoundParams>(notFound =>
                {
                    result = notFound.Response;
                })
                .When <AddNewListItemStep, AddNewListItemParams>(add =>
                {
                    result = add.Response;
                });
            }, request,
                          error =>
            {
                result = error;
            });

            return(result);
        }
Exemplo n.º 9
0
        public async Task <MessageOutputBase> ChangeStatusText([FromBody] ChangeStatusTextRequest request)
        {
            MessageOutputBase result = null;

            request.UserName = GetCurrentUser();

            await Execute(flow =>
            {
                flow.StartRegisterFlow()
                .Add <CheckUserExistsStep>()
                .Add <ChangeStatusTextStep>();

                flow.
                When <UserNotFoundStep, UserNotFoundParams>(notFound =>
                {
                    result = notFound.Response;
                })
                .When <ChangeStatusTextStep, ChangeStatusTextParams>(change =>
                {
                    result = change.Response;
                });
            }, request,
                          error =>
            {
                result = error;
            });

            return(result);
        }
Exemplo n.º 10
0
        /// <summary>
        /// Производит резолвинг данных с текущим контекстом.
        /// </summary>
        /// <param name="context">Контекст.</param>
        /// <returns>Данные.</returns>
        public override async Task <object> Resolve(ResolveFieldContext <object> context)
        {
            var request = new FindUsersRequest();

            request.Name            = context.GetArgument <string>("name");
            request.CurrentUserName = context.UserContext.As <UserContext>().UserName;

            MessageOutputBase outputMessage = null;

            object result = null;

            await Execute(flow =>
            {
                flow.StartRegisterFlow()
                .Add <FindUsersStep>();


                flow.When <FindUsersStep, FindUsersParams>(fetch =>
                {
                    outputMessage = fetch.Response;
                    result        = fetch.Response.Profiles;
                });
            }, request,
                          context);

            ProcessErrors(context, outputMessage);

            return(result);
        }
Exemplo n.º 11
0
        /// <summary>
        /// Создает сообщение с ошибкой при возникновении исключения.
        /// </summary>
        /// <param name="ex">Возникшее исключение.</param>
        /// <returns>Сообщение с ошибкой.</returns>
        protected virtual MessageOutputBase CreateErrorMessage(Exception ex)
        {
            var error = new MessageOutputBase();

            error.Errors.Add(new ErrorInfo(CommonErrors.SystemError, "Произошла ошибка системы"));
            return(error);
        }
Exemplo n.º 12
0
 /// <summary>
 /// 实例化数据库访问对象
 /// </summary>
 internal DataBaseOperate(DBInfo db, bool isAutoClose)
 {
     _db        = db;
     _dbAdapter = db.CurrentDbAdapter;
     if (!isAutoClose)
     {
         _commitState = CommitState.UserCommit;
     }
     _outputer = db.SqlOutputer.CreateOutput(this);
 }
Exemplo n.º 13
0
 /// <summary>
 /// Обработка ошибок сообщения.
 /// </summary>
 /// <param name="context">Контекст.</param>
 /// <param name="message">Сообщение.</param>
 protected void ProcessErrors(ResolveFieldContext <TSourceType> context, MessageOutputBase message)
 {
     if (message == null)
     {
         return;
     }
     foreach (var messageError in message.Errors)
     {
         context.Errors.Add(CreateValidationError(context, messageError.Code, messageError.Text));
     }
 }
Exemplo n.º 14
0
        /// <summary>
        /// 获取param里边的值的显示字符串
        /// </summary>
        /// <returns></returns>
        public string GetParamString(DBInfo db, DataBaseOperate oper)
        {
            bool showBinary       = false;
            int  hideTextLength   = 0;
            MessageOutputBase msg = oper.MessageOutputer;

            if (msg != null)
            {
                showBinary     = msg.ShowBinary;
                hideTextLength = msg.HideTextLength;
            }
            return(GetParamString(db, showBinary, hideTextLength));
        }
Exemplo n.º 15
0
        public async Task <MessageOutputBase> ChangeAvatar()
        {
            MessageOutputBase          result  = null;
            UpdateAccountAvatarRequest request = new UpdateAccountAvatarRequest();


            request.ClientIp = GetClientIp();
            request.RootPath = GetRootPath();

            if (Request.Form.Files.Count > 0)
            {
                request.FileName = Request.Form.Files[0].FileName;
                request.Data     = await ReadFully(Request.Form.Files[0].OpenReadStream());
            }

            request.UserName = GetCurrentUser();

            await Execute(flow =>
            {
                flow.StartRegisterFlow()
                .Add <CheckUserExistsStep>()
                .Add <UpdateAccountAvatarStep>();

                flow.
                When <UserNotFoundStep, UserNotFoundParams>(notFound =>
                {
                    result = notFound.Response;
                })
                .When <UpdateAccountAvatarStep, UpdateAccountAvatarParams>(change =>
                {
                    result = change.Response;
                });
            }, request,
                          error =>
            {
                result = error;
            });

            return(result);
        }
Exemplo n.º 16
0
        public async Task <MessageOutputBase> Register([FromBody] AccountRegisterRequest request)
        {
            MessageOutputBase result = null;

            request.Ip = GetClientIp();
            await Execute(flow =>
            {
                flow.StartRegisterFlow()
                .Add <AccountRegisterStep>();
                flow.
                When <AccountRegisterStep, AccountRegisterParams>(register =>
                {
                    result = register.Response;
                });
            }, request,
                          error =>
            {
                result = error;
            });

            return(result);
        }
Exemplo n.º 17
0
        public async Task <MessageOutputBase> FindUsers(FindUsersRequest request)
        {
            MessageOutputBase result = null;

            request.CurrentUserName = GetCurrentUser();

            await Execute(flow =>
            {
                flow.StartRegisterFlow()
                .Add <FindUsersStep>();


                flow.When <FindUsersStep, FindUsersParams>(fetch =>
                {
                    result = fetch.Response;
                });
            }, request,
                          error =>
            {
                result = error;
            });

            return(result);
        }