Páginas filhas
  • Envio

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Deck of Cards
idExemplo
Card
labelAdapter Send
Bloco de código
languagec#
titleExemplo - Código
linenumberstrue
collapsetrue
using RM.Eai.TotvsMessage.Adapter;
using RM.Eai.TotvsMessage.IService;
using RM.Eai.TotvsMessage.Lib;
using RM.Lib;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace RM.Prj.TotvsMessage.Adapter.Projeto
{
  /// <summary>
  /// Adapter Envio de Projeto
  /// </summary>
  [AdapterAttr("PROJECT", "2.000", TransactionDescription = "Project")]
  public class Project_Send_2000 : AdapterWebServiceBase
  {
    /// <summary>
    /// 
    /// </summary>
    protected override void DoInitializeAdapter()
    {
      this.AdapterName = "PROJECT";
      this.TableName = "MPRJ";
      base.DoInitializeAdapter();
    }

    /// <summary>
    /// 
    /// </summary>
    /// <param name="parms"></param>
    /// <returns></returns>
    protected override EAITransformMessageResult DoTransformMessage(EAITransformMessageParam parms)
    {
      EAITransformMessageResult result = new EAITransformMessageResult(null, null);

      Project_Model_V2_BusinessContent businessContentObj = new Project_Model_V2_BusinessContent();

      DataSet dsMPrj = ((DataSet)parms.ObjOriginal);

      DataTable dtProject = dsMPrj.Tables["MPRJ"];
      DataTable dtMPeriodo = dsMPrj.Tables["MPERIODO"];

      if (dtProject.Rows.Count != 1)
        throw new ExceptionRMSValidateException(Properties.Resources.sPrjValidacaoSendProject);

      DataRow rowProject = dtProject.Rows[0];
      
      businessContentObj.CompanyId = RMSConvert.ToString(rowProject["CODCOLIGADA"]);
      businessContentObj.BranchId = RMSConvert.ToString(rowProject["CODFILIAL"]);
      businessContentObj.CompanyInternalId = RMSConvert.ToString(rowProject["COMPANYINTERNALID"]);
      businessContentObj.InternalId = RMSConvert.ToString(rowProject["INTERNALID"]);
      businessContentObj.Code = RMSConvert.ToString(rowProject["CODPRJ"]);
      businessContentObj.Description = RMSConvert.ToString(rowProject["DESCRICAO"]);

      if (rowProject["CODCCUSTO"] != DBNull.Value)
        businessContentObj.CostCenterCode = RMSConvert.ToString(rowProject["CODCCUSTO"]);

      DataTable dtMprjStatusLog = dsMPrj.Tables["MPRJSTATUSLOG"];

      if (dtMprjStatusLog.Rows.Count > 0)
      {
        DataRow rowDtStatusLog = dtMprjStatusLog.Rows[0];
        businessContentObj.RegisterDate = RMSConvert.ToDateTime(rowDtStatusLog["DATAMUDANCA"]);
        businessContentObj.StatusProject = RMSConvert.ToInt32(rowProject["POSICAO"]);
      }
      if (dtMPeriodo.Rows.Count > 0)
      {
        DataRow rowMPeriodo = dtMPeriodo.Rows[0];
        if (rowMPeriodo["DTINICIO"] != DBNull.Value)
          businessContentObj.BeginDate = RMSConvert.ToDateTime(rowMPeriodo["DTINICIO"]);
        if (rowMPeriodo["DTFIM"] != DBNull.Value)
          businessContentObj.FinalDate = RMSConvert.ToDateTime(rowMPeriodo["DTFIM"]);
      }

      if (rowProject["CNOPRJ"] != DBNull.Value)
        businessContentObj.WorkCode = RMSConvert.ToString(rowProject["CNOPRJ"]).Replace(".", string.Empty).Replace("-", string.Empty).Replace("/", string.Empty);

      if (rowProject["INDPRESTSRV"] != DBNull.Value && (RMSConvert.ToInt32(rowProject["INDPRESTSRV"]) != 0))
      {
        switch (RMSConvert.ToInt32(rowProject["INDPRESTSRV"]))
        {
          case 1:
            businessContentObj.WorkId = 0;
            break;
          case 2:
            businessContentObj.WorkId = 1;
            break;
          case 3:
            businessContentObj.WorkId = 2;
            break;
          default:
            break;
        }
      }

      if (rowProject["CGCCFO"] != DBNull.Value)
        businessContentObj.WorkGovernmentalId = RMSConvert.ToString(rowProject["CGCCFO"]).Replace(".", string.Empty).Replace("-", string.Empty).Replace("/", string.Empty);

      if (rowProject["TPPRJ"] != DBNull.Value)
        businessContentObj.WorkType = RMSConvert.ToString(rowProject["TPPRJ"]);

      return base.DoTransformMessage(parms);
    }

    /// <summary>
    /// 
    /// </summary>
    /// <returns></returns>
    protected override List<InfoTableDePara> DoGetInfoTableDePara()
    {
      List<InfoTableDePara> tablesDePara = new List<InfoTableDePara>();
      InfoTableDePara table = new InfoTableDePara("MPRJ", "PROJECT");
      table.DescriptionName = "Projeto";

      InfoColumnDePara column = new InfoColumnDePara(EAIConsts.ctINTERNALID, "CODCOLIGADA|IDPRJ", "MPRJ");
      column.ForeignKeyDePara = false;
      column.ColumnCaptionCode = "CODPRJ";
      column.ColumnCaption = Properties.Resources.sPrjCodPrj;
      table.ColumnsName.Add(column);

      column = new InfoColumnDePara("CompanyInternalId", "CODCOLIGADA|CODFILIAL", "GFILIAL");
      column.ForeignKeyDePara = true;
      column.ColumnCaptionCode = "CODCOLIGADA";
      column.ColumnCaption = Properties.Resources.SPrjEmpProjeto;
      table.ColumnsName.Add(column);

      column = new InfoColumnDePara("CostCenterInternalId", "CODCOLIGADA|CODCCUSTO", "GCCUSTO");
      column.ForeignKeyDePara = true;
      column.ColumnCaptionCode = "CODCCUSTO";
      column.ColumnCaption = Properties.Resources.SPrjCCustoProjeto;
      table.ColumnsName.Add(column);

      tablesDePara.Add(table);

      return tablesDePara;
    }

  }
}

Card
labelModel
Bloco de código
languagec#
titleModel
linenumberstrue
collapsetrue
/// <summary>
  /// Project Model
  /// </summary>
  [System.SerializableAttribute()]
  [System.ComponentModel.DesignerCategoryAttribute("code")]
  [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  [System.Xml.Serialization.XmlRootAttribute(ElementName = "BusinessContent", IsNullable = false)]
  [MessageContentTypeAttr("PROJECT", 2, MessageTypeEnum.tmBusinessMessage)]
  public partial class Project_Model_V2_BusinessContent : EAIBusinessContentModelBase
  {
    /// <summary>
    /// 
    /// </summary>
    public string CompanyId { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public string BranchId { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public string CompanyInternalId { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public string ShortCode { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public string Code { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public string InternalId { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public string Description { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public string CostCenterCode { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public string CostCenterInternalId { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public DateTime RegisterDate { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public DateTime BeginDate { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public DateTime FinalDate { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public int StatusProject { get; set; }
  }

  /// <summary>
  /// 
  /// </summary>
  [System.SerializableAttribute()]
  [System.ComponentModel.DesignerCategoryAttribute("code")]
  [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  [System.Xml.Serialization.XmlRootAttribute(ElementName = "ReturnContent", IsNullable = false)]
  [MessageContentTypeAttr("PROJECT", 2, MessageTypeEnum.tmResponseMessage)]
  public partial class Project_Model_V2_ReturnContent : EAIReturnContentModelBase
  {
  }



Dica gerar a classe model a partir do XML:

Image Added