// POST: api/Form
        public FormModelResult Post(JObject form)
        {
            LogService.StartProcessLog(_log);
            FormModelResult formResult = new FormModelResult();

            try
            {
                if (ModelState.IsValid)
                {
                    LogService.SaveLog(_log, "Conexão com RabbitMQ aberta.");

                    LogService.SaveLog(_log, "Iniciando operação RPC.");

                    RpcService rpcService = new RpcService();

                    FormModel formModel = rpcService.ConvertToJsonToFormObj(form);

                    string body = rpcService.ConvertToJson(formModel).ToLower();

                    LogService.SaveLog(_log, "Chamada RPC.");

                    var response = rpcService.Call(body);

                    JObject jsonResult = JObject.Parse(response);

                    formResult = rpcService.ConvertFormModelToResult(formModel, jsonResult);

                    LogService.SaveLog(_log, "Conexão com RabbitMQ fechada.");
                }
                else
                {
                    LogService.SaveLog(_log, "Modelo de dados inválido - Por favor informe todos os dados!");
                }
            }
            catch (Exception ex)
            {
                LogService.SaveLog(_log, "Erro no processo. Erro: " + ex.Message);
            }

            LogService.FinishProcessLog(_log);

            return(formResult);
        }
        public FormModelResult ConvertFormModelToResult(FormModel formModel, JObject response)
        {
            FormModelResult formResult = new FormModelResult();

            if (formModel != null)
            {
                formResult.Id       = formModel.Id;
                formResult.Side     = formModel.Side;
                formResult.Quantity = formModel.Quantity;
                formResult.Price    = formModel.Price;
                formResult.Symbol   = formModel.Symbol;

                if (response != null)
                {
                    if (formResult.Id == Int32.Parse(response["id"].ToString()))
                    {
                        formResult.Id = Int32.Parse(response["id"].ToString());

                        if (bool.Parse(response["status"].ToString()))
                        {
                            formResult.Status = "Enviado";
                        }
                        else
                        {
                            formResult.Status = "Erro";
                        }
                        if (((Newtonsoft.Json.Linq.JContainer)(response["msgs"])).Count > 0)
                        {
                            formResult.Msgs = "Erro: " + response["msgs"][0].ToString();
                        }
                        else
                        {
                            formResult.Msgs = "Conexão Estabelecida";
                        }
                    }
                }
            }
            return(formResult);
        }