public virtual async Task <IActionResult> PostAsync([FromBody] TInDto dto)
        {
            LogData(dto);

            await ValidateRouteAsync(forceValidation : true);

            if (ResponseBuilder.HasErrors())
            {
                return(NotFound(ResponseBuilder.Build()));
            }

            var entity = ApiMapper.Map <TEntity>(dto);

            Repository.Add(entity);

            var result = await PostFlowAsync(dto, entity, SaveAsync);

            if (result != null)
            {
                return(result);
            }

            var data = ApiMapper.Map <TOutDto>(entity);

            LogData(data);

            return(CreatedAtAction(nameof(GetAsync), new { id = entity.Id }, ResponseBuilder
                                   .AddData(data)
                                   .Build()));
        }
        public ISkillResult Handle(Exception exception, IRequest request)
        {
            var context = (request as ContextRequest)?.Context;

            var rb = new ResponseBuilder(context);

            rb
            .Tell("Leider ist ein Fehler aufgetreten.")
            .WithCard(card =>
            {
                card.WithSimpleCard(exception.GetType().ToString(), exception.StackTrace);
            })
            .WithDisplay(display =>
            {
                display
                .FromTemplate(BodyTemplateType.BodyTemplate1)
                .WithTitle(exception.GetType().ToString())
                .WithPrimaryPlainText(exception.Message)
                .WithSecondaryPlainText(exception.StackTrace)
                ;
            })
            ;

            // TODO				Version = requestEnvelope.Version,
            // Build response
            var session = (request as SessionRequest)?.Session;

            var resultBuilder = new SkillResultBuilder();
            var result        = resultBuilder.Build(rb.Build(), session?.Attributes);

            return(new OkResult(result));
        }
Beispiel #3
0
        private Response BuildResponse(IList <IAccount> accounts)
        {
            ResponseBuilder builder = new ResponseBuilder();

            //Probably need to do something more with this response builder
            return(builder.Build());
        }
Beispiel #4
0
        private void RegisterUser(string[] user_data)
        {
            string response;

            if (!db.IsUserExist(user_data[1]))
            {
                db.AddUser(user_data[1], user_data[2]);

                log.WriteLog("Пользователь " + user_data[1] + " успешно зарегистрирован");

                response = ResponseBuilder.Build(QueryConsts.RT_REGISTER, QueryConsts.RT_SUCCESS);
                bool result = SendResponse(response);
                if (!result)
                {
                    log.WriteLog("Пользователь " + user_data[1] + " был удален, т.к. он не принял подтверждение");
                    db.DeleteUser(user_data[1]);
                }
            }
            else
            {
                log.WriteLog("Пользователь " + user_data[1] + " не был зарегистрирован, т.к. такое имя уже существует");

                response = ResponseBuilder.Build(QueryConsts.RT_REGISTER, QueryConsts.RT_USER_EXISTS);
                SendResponse(response);
            }
        }
        public virtual async Task <IActionResult> GetAsync(QueryString queryString)
        {
            var query = Repository.Query.AsNoTracking();

            query = ApplyRouteParams(query);
            query = QueryBuilder.Build(query, queryString);

            var entityList = await PagedList <TEntity> .CreateAsync(query, queryString);

            if (!entityList.Any())
            {
                await ValidateRouteAsync(queryString);

                if (ResponseBuilder.HasErrors())
                {
                    return(NotFound(ResponseBuilder.Build()));
                }
            }

            Response.Headers.Add("X-Paging", PagingHeaderBuilder.Build(this, queryString, entityList));

            var data = ApiMapper.Map <IEnumerable <TOutDto> >(entityList).Select(p => Shaper.Shape(p, queryString));

            LogData(data);

            return(Ok(ResponseBuilder
                      .AddData(data)
                      .Build()));
        }
        public virtual async Task <IActionResult> PostBatchAsync([FromBody] IEnumerable <TInDto> dtoList)
        {
            LogData(dtoList);

            await ValidateRouteAsync(forceValidation : true);

            if (ResponseBuilder.HasErrors())
            {
                return(NotFound(ResponseBuilder.Build()));
            }

            var entityList = ApiMapper.Map <IEnumerable <TEntity> >(dtoList);

            Repository.AddRange(entityList);

            var result = await PostFlowAsync(dtoList, entityList, SaveAsync);

            if (result != null)
            {
                return(result);
            }

            var outDtoList = ApiMapper.Map <IEnumerable <TOutDto> >(entityList);
            var ids        = string.Join(',', outDtoList.Select(p => p.Id));

            LogData(outDtoList);

            return(CreatedAtAction(nameof(GetBatchAsync), new { ids }, ResponseBuilder
                                   .AddData(outDtoList)
                                   .Build()));
        }
Beispiel #7
0
        private void GetContacts(string[] req)
        {
            var cont = db.GetUserContacts(req[1]);

            StringBuilder sb = new StringBuilder();


            if (cont.Count != 0)
            {
                foreach (UserContact tmp_cont in cont)
                {
                    sb.Append(tmp_cont.Friend + " ");
                }

                sb.Remove(sb.Length - 1, 1);
            }
            else
            {
                sb.Append(QueryConsts.RT_EMPTY_CONTACTS);
            }

            string response = ResponseBuilder.Build(QueryConsts.RT_GET_CONTACTS, sb.ToString());

            if (SendResponse(response))
            {
                log.WriteLog("Пользователю " + Tools.GetIPFromSocket(client) + " был отправлен список его контактов");
            }
        }
Beispiel #8
0
        Response makeRequest(HttpOptions httpOptions)
        {
            var request = _requestBuilder.Build(httpOptions);

            var response = (HttpWebResponse)request.GetResponse();

            return(_responseBuilder.Build(response));
        }
Beispiel #9
0
        public void Should_AbleToSetResponseWithBuilder()
        {
            var response = new ResponseBuilder().Description("desc");

            var swaggerRoot = GetBasicSwaggerRootBuilder().Response("name", response).Build();

            Assert.True(swaggerRoot.Responses.ContainsKey("name"));
            Assert.Equal(response.Build().Description, swaggerRoot.Responses["name"].Description);
        }
        public ActionResult Create([FromForm] Post post)
        {
            post.UserId = _UserModel.LoggedIn().Id;
            //post.Category = _ApiContext.Categories.Single<Category>(c => c.Id == post.CategoryId);

            /*if (!post.IsValidated())
             * {
             *  _ResponseContext.AddError("אחד או יותר מהשדות ריקים, או שאינך מחובר.");
             * }*/

            if (_ResponseContext.status)
            {
                _ApiContext.Posts.Add(post);
                _ApiContext.SaveChanges();
            }

            return(Ok(_ResponseContext.Build()));
        }
Beispiel #11
0
        private void SendMessage(string[] req_data)
        {
            User sender    = db.GetUserByName(req_data[1]);
            User recipient = db.GetUserByName(req_data[2]);

            if (recipient.IsOnline)
            {
                Socket recip = (connections
                                .Where(t => (t.Key == recipient.UserName) && (Tools.GetIPFromSocket(t.Value) == recipient.IPAdress)))
                               .FirstOrDefault().Value;


                lock (recip)
                {
                    string mess0 = "";
                    if (req_data.Length > 4)
                    {
                        for (int i = 3; i < req_data.Length; i++)
                        {
                            mess0 += req_data[i] + " ";
                        }
                        mess0 = mess0.Remove(mess0.Length - 1, 1);
                    }
                    else
                    {
                        mess0 = req_data[3];
                    }

                    string response = RequestBuilder.RidirectedMessageRequest(sender.UserName, mess0);
                    if (SendResponse(response, recip))
                    {
                        string sender_resp = ResponseBuilder.Build(QueryConsts.RT_SEND_MESSAGE, QueryConsts.RT_SUCCESS);
                        if (SendResponse(sender_resp))
                        {
                            log.WriteLog("Сообщение от " + sender.IPAdress + " к " + recipient.IPAdress + " успешно доставлено");
                        }
                        else
                        {
                            log.WriteLog("Сообщение от " + sender.IPAdress + " к " + recipient.IPAdress + " не доставлено, т.к. не было ответа от отправителя");
                        }
                    }
                    else
                    {
                        log.WriteLog("Сообщение от " + sender.IPAdress + " к " + recipient.IPAdress + " не доставлено, т.к. не было ответа от получателя");
                    }
                }
            }
            else
            {
                string sender_resp = ResponseBuilder.Build(QueryConsts.RT_SEND_MESSAGE, QueryConsts.RT_FAILURE);
                if (SendResponse(sender_resp))
                {
                    log.WriteLog("Сообщение от " + sender.IPAdress + " к " + recipient.IPAdress + " не доставлено, т.к получатель не онлайн");
                }
            }
        }
Beispiel #12
0
    public void Login()
    {
        ResponseBuilder.id(getID());
        string text = ResponseBuilder.Build();

        ResponseBuilder.Clear();

        string response = SendRequest(LOGIN_CONTEXT, text);

        if (!response.Equals("OK"))
        {
            Logger.Log("Login failed: " + response);
        }
        else
        {
            Logger.Log("Login successful");
            isLoggedIn = true;
        }
    }
Beispiel #13
0
        public void CheckGenericReferenceId()
        {
            var builder = new ResponseBuilder(new OpenApiComponents());

            builder.AddJsonContent <Result <ListProjectsViewResult> >();

            var result = builder.Build();

            result.Content["application/json"].Schema.Reference.Id.Should().Be("ListProjectsViewResultResult");
        }
Beispiel #14
0
        private void LoginUser(string[] user_data)
        {
            string response;

            User tmp_user = db.GetUserByName(user_data[1]);

            if (tmp_user != null)
            {
                if (!tmp_user.IsOnline)
                {
                    if (tmp_user.Password == user_data[2])
                    {
                        m_user = tmp_user;

                        KeyValuePair <string, Socket> cur_conn = new KeyValuePair <string, Socket>(user_data[1], client);
                        connections.Add(cur_conn);

                        db.SetStatus(user_data[1], true);
                        db.SetUserIP(user_data[1], Tools.GetIPFromSocket(client));

                        log.WriteLog("Пользователь " + user_data[1] + " успешно авторизовался");

                        response = ResponseBuilder.Build(QueryConsts.RT_LOGIN, QueryConsts.RT_SUCCESS);

                        bool result = SendResponse(response);
                        if (!result)
                        {
                            db.SetStatus(user_data[1], false);
                            log.WriteLog("Пользователь " + user_data[1] + " принудительно покинул систему, т.к. он не принял подтверждение");
                        }
                    }
                    else
                    {
                        log.WriteLog("Пользователь " + user_data[1] + " не смог войти в систему, т.к. ввел неправильный пароль");

                        response = ResponseBuilder.Build(QueryConsts.RT_LOGIN, QueryConsts.RT_WRONG_PASSWORD);
                        SendResponse(response);
                    }
                }
                else
                {
                    log.WriteLog("Пользователь " + user_data[1] + " не смог войти в систему, т.к. он уже находится в системе");

                    response = ResponseBuilder.Build(QueryConsts.RT_LOGIN, QueryConsts.RT_USER_ALREADY_ONLINE);
                    SendResponse(response);
                }
            }
            else
            {
                log.WriteLog("Пользователь " + user_data[1] + " не смог войти в систему, т.к. он не зарегистрирован");

                response = ResponseBuilder.Build(QueryConsts.RT_LOGIN, QueryConsts.RT_USER_NOT_FOUND);
                SendResponse(response);
            }
        }
Beispiel #15
0
        private void RemoveUserToContacts(string[] req)
        {
            db.RemoveContact(m_user, req[1]);

            string response = ResponseBuilder.Build(QueryConsts.RT_ADD_TO_CONTACTS, QueryConsts.RT_SUCCESS);

            if (SendResponse(response))
            {
                log.WriteLog("Пользователь " + Tools.GetIPFromSocket(client) + " удалил из списка контактов пользователя " + req[1]);
            }
        }
Beispiel #16
0
        public void CheckNormalReferenceId()
        {
            var builder = new ResponseBuilder(new OpenApiComponents());

            builder.AddJsonContent <SinglePropertyClass>();

            var result = builder.Build();

            result.Content.Should().HaveKey("application/json");
            result.Content["application/json"].Schema.Reference.Id.Should().Be("SinglePropertyClass");
        }
        public ActionResult Signup([FromForm] User user)
        {
            if (!user.IsValidated())
            {
                _ResponseContext.AddError("אחד או יותר מהשדות ריקים.");
            }

            if (_UserModel.Exists(user.Email))
            {
                _ResponseContext.AddError("האימייל כבר תפוס, אנא נסה להרשם עם אימייל אחר.");
            }

            if (_ResponseContext.status)
            {
                _ApiContext.Users.Add(user);
                _ApiContext.SaveChanges();
            }

            return(Ok(_ResponseContext.Build()));
        }
        public void Clear_ShouldResetAllProperties()
        {
            var builder = new ResponseBuilder(new StubBuilder());

            (builder.WithBody(Guid.NewGuid().ToString())
             .WithStatusCode(HttpStatusCode.Forbidden)
             .WithHeader("header", "values") as ResponseBuilder).Build();

            builder.Clear();
            builder.Build().ShouldBeEquivalentTo(new HttpResponseModel());
        }
Beispiel #19
0
        private Response BuildOutput(IList <Entities.ITodoItem> todoItems)
        {
            ResponseBuilder builder = new ResponseBuilder();

            foreach (var item in todoItems)
            {
                builder.WithItem(item.Id, item.Title);
            }

            return(builder.Build());
        }
Beispiel #20
0
        private void AddUserToContacts(string[] req)
        {
            db.AddContact(m_user, req[1]);

            string response = ResponseBuilder.Build(QueryConsts.RT_ADD_TO_CONTACTS, QueryConsts.RT_SUCCESS);

            if (SendResponse(response))
            {
                log.WriteLog("Пользователь " + Tools.GetIPFromSocket(client) + " добавил в список контакта пользователя " + req[1]);
            }
        }
        private async Task <IActionResult> BuildResponseForNotFoundEntityAsync(IEnumerable <TKey> ids, QueryString queryString)
        {
            await ValidateRouteAsync(ids, queryString);

            if (!ResponseBuilder.HasErrors())
            {
                AddRecordNotFoundError(ids);
            }

            return(NotFound(ResponseBuilder.Build()));
        }
Beispiel #22
0
        public Response HandleRequest(Request request)
        {
            ResponseBuilder responseBuilder = new ResponseBuilder();

            responseBuilder.SetStatusCode(200);
            var message = Encoding.UTF8.GetBytes("Hello World");

            responseBuilder.SetBody(new MemoryStream());
            responseBuilder.GetBodyStream().Write(message, 0, message.Length);
            responseBuilder.SetContentType("text/plain");
            return(responseBuilder.Build());
        }
Beispiel #23
0
        private Response BuildResponse(IList <IItem> items)
        {
            ResponseBuilder builder = new ResponseBuilder();

            foreach (var item in items)
            {
                if (item.Done)
                {
                    builder.WithDone(item.Id, item.Title);
                }
                else
                {
                    builder.WithUndone(item.Id, item.Title);
                }
            }

            return(builder.Build());
        }
        public virtual async Task <IActionResult> PatchAsync(TKey id, [FromBody] JsonPatchDocument <TInDto> patchDto, QueryString queryString)
        {
            LogData(patchDto);

            if (patchDto == null)
            {
                return(new ApiUnprocessableEntityResult(ResponseBuilder.AddError(ApiResources.PatchDataMissing).Build()));
            }

            var query = Repository.Query.Where(p => p.Id.Equals(id));

            query = ApplyRouteParams(query);

            var entity = await query.FirstOrDefaultAsync();

            if (entity == null)
            {
                return(await BuildResponseForNotFoundEntityAsync(id, queryString));
            }

            var dto = ApiMapper.Map <TInDto>(entity);

            patchDto.ApplyTo(dto, ModelState);
            TryValidateModel(dto);

            if (!ModelState.IsValid)
            {
                ModelStateResolver.GetModelErrors(ModelState).ForEach(error => ResponseBuilder.AddError(error.Message, error.Field));
                return(new ApiUnprocessableEntityResult(ResponseBuilder.Build()));
            }

            ApiMapper.Map(dto, entity);

            var result = await UpdateFlowAsync(dto, entity, SaveAsync);

            if (result != null)
            {
                return(result);
            }

            return(NoContent());
        }
Beispiel #25
0
        private void LoadContactList()
        {
            ActionResult cont = client.GetContacts(user_name);

            if (cont.Result)
            {
                if (cont.Data != ResponseBuilder.Build(QueryConsts.RT_GET_CONTACTS, QueryConsts.RT_EMPTY_CONTACTS))
                {
                    string[] users = cont.Data.Split(' ');
                    for (int i = 1; i < users.Length; i++)
                    {
                        UserList.Items.Add(users[i]);
                    }
                }
            }
            else
            {
                MessageBox.Show(ErrorMessages.ERR_UNDEFINED_RESPONSE, ErrorMessages.ERR_ERROR,
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Beispiel #26
0
        private void GetUserList()
        {
            StringBuilder sb = new StringBuilder();

            foreach (string t in db.GetUserNamesList())
            {
                if (t != m_user.UserName)
                {
                    sb.Append(t + " ");
                }
            }

            if (sb.Length > 0)
            {
                sb.Remove(sb.Length - 1, 1);
            }

            string response = ResponseBuilder.Build(QueryConsts.RT_USERS_LIST, sb.ToString());

            if (SendResponse(response))
            {
                log.WriteLog("Пользователь " + Tools.GetIPFromSocket(client) + " получил список пользователей");
            }
        }
 /// <summary>
 /// Add the expected response object for an HTTP Status Code
 /// </summary>
 /// <param name="httpStatusCode">
 /// The http status code.
 /// </param>
 /// <param name="response">
 /// The response.
 /// </param>
 /// <returns>
 /// The <see cref="OperationBuilder"/>.
 /// </returns>
 public OperationBuilder Response(string httpStatusCode, Action<ResponseBuilder> response)
 {
     if (this.responses == null)
     {
         this.responses = new Dictionary<string, Response>();
     }
     var builder = new ResponseBuilder();
     response(builder);
     this.responses.Add(httpStatusCode, builder.Build());
     return this;
 }
 public void Should_ThrowRequiredFieldException_WhenDescriptionIsNotSet()
 {
     Assert.Throws <RequiredFieldException>(() => builder.Build());
 }
Beispiel #29
0
        /// <summary>
        /// Handle a TcpClient connection.
        /// </summary>
        /// <param name="client"></param>
        public void HandleConnection(TcpClient client)
        {
            NetworkStream clientStream = client.GetStream();
            UTF8Encoding  encoder      = new UTF8Encoding();

            while (client.Connected)
            {
                bool   typing    = true;
                int    bytesRead = 0;
                string cmd       = "";

                while (true)
                {
                    byte[] buffer = new byte[1];
                    try
                    {
                        bytesRead += clientStream.Read(buffer, 0, buffer.Length);
                    }
                    catch (Exception e)
                    {
                        Log.E(e, "Error reading message.");
                        break;
                    }

                    // DEBUG
                    Log.I(encoder.GetString(buffer));

                    if (bytesRead == 0)
                    {
                        client.Close();
                        return;
                    }
                    else if (encoder.GetString(buffer) == "\n")
                    {
                        if (cmd[cmd.Length - 1] == '\r')
                        {
                            cmd = cmd.Substring(0, cmd.Length - 1);
                        }
                        break;
                    }
                    else
                    {
                        cmd += encoder.GetString(buffer);
                    }
                }

                Log.I("Command: " + cmd
                      .Replace("\r", "{CR}")
                      .Replace("\n", "{LF}"));
                string cmdRoot = cmd.Split(' ')[0];

                string[] cmdSplit = cmd.Split(' ');
                string[] args     = new string[cmdSplit.Length - 1];
                for (int ai = 0; ai < args.Length; ai++)
                {
                    args[ai] = cmdSplit[ai + 1];
                }

                clientStream.Write(new[] { (byte)Reference.MCS_ACKNOWLEDGE }, 0, 1);

                Command command = MissionControlServer.Instance.CommandRegistry.GetMatchingCommand(cmdRoot) ?? new UnknownCommand();

                string response;
                try
                {
                    response = ResponseBuilder.Build("MC_OK", command.RunCommand(client, cmd, cmdRoot, args));
                }
                catch (MCException ex)
                {
                    response = ResponseBuilder.Build(ex);
                }
                catch (Exception e)
                {
                    response = ResponseBuilder.Build(e);
                }

                byte[] responseBytes = encoder.GetBytes(response);

                clientStream.Write(responseBytes, 0, responseBytes.Length);
            }
        }