/// <summary>
        /// É executado quando a validação de um modelo falha, retornando 400(Bad Request) e uma mensagem de erro
        /// </summary>
        /// <param name="actionContext">
        /// Representa o contexto em que a ação ocorreu
        /// </param>
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            if (!actionContext.ModelState.IsValid)
            {
                var errorList = actionContext.ModelState.Values.SelectMany(m => m.Errors)
                                .Select(e => e.ErrorMessage).Where(e => e != "")
                                .ToList();

                var error = new DescriptionMessage(HttpStatusCode.BadRequest, "Invalid value", errorList);
                actionContext.Response = new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content      = new ObjectContent(error.GetType(), error, new JsonMediaTypeFormatter()),
                    ReasonPhrase = "Invalid Value Supplied"
                };
            }
        }
        public void TraiterMessageConsommer(object sender, MessageBodyEvent e)
        {
            DescriptionMessage descriptionMessage = JsonConvert.DeserializeObject <DescriptionMessage>(e.Message);



            Task <ActionResult <ProduitItem> > p = new ProduitItemsController(null).GetProduitItem((int)descriptionMessage.Donnees[0]);


            if (p.Result.Value.Stock >= (int)descriptionMessage.Donnees[1])
            {
                p.Result.Value.Stock -= (int)descriptionMessage.Donnees[1];
                Task <IActionResult> pp = new ProduitItemsController(null).PutProduitItem(p.Result.Value.Id, p.Result.Value);
                Debug.WriteLine("\n\n" + pp.ToString() + "\n\n");
                if (pp.ToString().Equals("Microsoft.AspNetCore.Mvc.NoContentResult"))
                {
                    _reponse = "Valide";
                }
                else
                {
                    _reponse = "Non";
                }
            }
            else
            {
                _reponse = "Non";
            }



            IBasicProperties replyBasicProperties = e.Model.CreateBasicProperties();

            replyBasicProperties.CorrelationId = e.BasicProperties.CorrelationId;
            byte[] responseBytes = Encoding.UTF8.GetBytes(_reponse);
            e.Model.BasicPublish("", e.BasicProperties.ReplyTo, replyBasicProperties, responseBytes);
        }
Beispiel #3
0
 private void ProcessDescriptionMessage(Guid sender_id, TypedMessage message)
 {
     log.Append("ProcessDescriptionMessage", String.Format("Description from {0}", sender_id.ToString()));
      DescriptionMessage description = new DescriptionMessage(message.data);
      if (aliveServers.GetItem(sender_id) == null)
      {
     bool alreadySaved = DatabaseHelper.GetServerSaved(database, sender_id);
     ServerData serverData = new ServerData(sender_id, description.Name, description.Location, description.Description, description.Sensors, description.PictureBytes);
     if (alreadySaved == false)
     {
        DatabaseHelper.SaveServerConfigData(database, serverData);
     }
     AddAliveServer(serverData);
      }
      log.Append("ProcessDescriptionMessage", String.Format("Description from {0} at {1}", description.Name, sender_id.ToString()));
      //MessageBox.Show(String.Format("Description from {0} at {1}", description.Name, sender.ToString()));
 }
 void networkNode_MessageReceived(object sender, MessageEventArgs args)
 {
     log.Append("networkNode_MessageReceived", String.Format("Message Received from {0}", args.SenderID.ToString()));
      TypedMessage message = new TypedMessage(args.Data, args.Data.Length);
      switch (message.type)
      {
     case MessageType.DescriptionRequest:
        log.Append("networkNode_MessageReceived", "Description Request received");
        DescriptionMessage description = new DescriptionMessage(CurrentServerData);
        TypedMessage reply = new TypedMessage(MessageType.DescriptionMessage, description.GetBytes());
        networkNode.SendDirect(reply.GetBytes(), args.SenderID);
        break;
     default:
        break;
      }
 }