Ejemplo n.º 1
0
 /// <summary>
 /// Recupera a mensagem de falha de forma recursiva.
 /// </summary>
 /// <param name="result"></param>
 /// <param name="message"></param>
 /// <returns></returns>
 private static bool GetRecursiveFailureMessage(PersistenceActionResult result, StringBuilder message)
 {
     if (!string.IsNullOrEmpty(result.FailureMessage))
     {
         message.AppendFormat("Action: {0} --> ", result.ActionId).AppendLine(result.FailureMessage);
     }
     if (result.BeforeActions != null && result.BeforeActions.Length > 0)
     {
         foreach (var i in result.BeforeActions)
         {
             if (GetRecursiveFailureMessage(i, message))
             {
                 return(true);
             }
         }
     }
     if (result.AfterActions != null && result.AfterActions.Length > 0)
     {
         foreach (var i in result.AfterActions)
         {
             if (GetRecursiveFailureMessage(i, message))
             {
                 return(true);
             }
         }
     }
     return(!string.IsNullOrEmpty(result.FailureMessage));
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Construtor padrão.
 /// </summary>
 /// <param name="action">Instancia da ação.</param>
 /// <param name="result">Resultado.</param>
 /// <param name="beforeActions">Ações executadas anteriormente.</param>
 /// <param name="afterActions">Ações executadas posteriomente.</param>
 /// <param name="alternativeActions">Ações alternativas executadas.</param>
 public ExecuteAction(PersistenceAction action, PersistenceActionResult result, ExecuteAction[] beforeActions, ExecuteAction[] afterActions, ExecuteAction[] alternativeActions)
 {
     action.Require("action").NotNull();
     _action             = action;
     _result             = result;
     _beforeActions      = beforeActions;
     _afterActions       = afterActions;
     _alternativeActions = alternativeActions;
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Desserializa o objeto.
        /// </summary>
        /// <param name="reader"></param>
        public void Deserialize(Serialization.IO.CompactReader reader)
        {
            ActionId       = reader.ReadInt32();
            Success        = reader.ReadBoolean();
            AffectedRows   = reader.ReadInt32();
            RowVersion     = reader.ReadInt64();
            FailureMessage = reader.ReadString();
            if (reader.ReadBoolean())
            {
                Result = reader.ReadObject();
            }
            var parameters = new List <PersistenceParameter>();

            while (reader.ReadBoolean())
            {
                PersistenceParameter parameter = new PersistenceParameter();
                ((ICompactSerializable)parameter).Deserialize(reader);
                parameters.Add(parameter);
            }
            Parameters = parameters.ToArray();
            var actions = new List <PersistenceActionResult>();

            while (reader.ReadBoolean())
            {
                PersistenceActionResult action = new PersistenceActionResult();
                ((ICompactSerializable)action).Deserialize(reader);
                actions.Add(action);
            }
            AlternativeActions = actions.ToArray();
            var beforeActions = new List <PersistenceActionResult>();

            while (reader.ReadBoolean())
            {
                PersistenceActionResult action = new PersistenceActionResult();
                ((ICompactSerializable)action).Deserialize(reader);
                beforeActions.Add(action);
            }
            BeforeActions = beforeActions.ToArray();
            var afterActions = new List <PersistenceActionResult>();

            while (reader.ReadBoolean())
            {
                PersistenceActionResult action = new PersistenceActionResult();
                ((ICompactSerializable)action).Deserialize(reader);
                afterActions.Add(action);
            }
            AfterActions = afterActions.ToArray();
        }
Ejemplo n.º 4
0
 void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader)
 {
     reader.MoveToAttribute("ActionId");
     ActionId = reader.ReadContentAsInt();
     reader.MoveToAttribute("Success");
     Success = bool.Parse(reader.ReadContentAsString());
     reader.MoveToAttribute("AffectedRows");
     AffectedRows = reader.ReadContentAsInt();
     reader.MoveToAttribute("RowVersion");
     RowVersion = reader.ReadContentAsLong();
     reader.MoveToElement();
     reader.ReadStartElement();
     if (!reader.IsEmptyElement)
     {
         reader.ReadStartElement("FailureMessage");
         FailureMessage = reader.ReadString();
         reader.ReadEndElement();
     }
     else
     {
         FailureMessage = null;
         reader.Skip();
     }
     if (!reader.IsEmptyElement)
     {
         reader.ReadStartElement("Result");
         Result = reader.ReadContentAsObject();
         reader.ReadEndElement();
     }
     else
     {
         Result = null;
         reader.Skip();
     }
     if (!reader.IsEmptyElement)
     {
         reader.ReadStartElement("Parameters", Namespaces.Data);
         var parameters = new List <PersistenceParameter>();
         while (reader.NodeType != System.Xml.XmlNodeType.EndElement)
         {
             if (reader.LocalName == "Parameter")
             {
                 var parameter = new PersistenceParameter();
                 ((System.Xml.Serialization.IXmlSerializable)parameter).ReadXml(reader);
                 parameters.Add(parameter);
             }
             else
             {
                 reader.Skip();
             }
         }
         Parameters = parameters.ToArray();
         reader.ReadEndElement();
     }
     else
     {
         reader.Skip();
     }
     if (!reader.IsEmptyElement)
     {
         reader.ReadStartElement("AlternativeActions", Namespaces.Data);
         var actions = new List <PersistenceActionResult>();
         while (reader.NodeType != System.Xml.XmlNodeType.EndElement)
         {
             if (reader.LocalName == "PersistenceActionResult")
             {
                 var action = new PersistenceActionResult();
                 ((System.Xml.Serialization.IXmlSerializable)action).ReadXml(reader);
                 actions.Add(action);
             }
             else
             {
                 reader.Skip();
             }
         }
         AlternativeActions = actions.ToArray();
         reader.ReadEndElement();
     }
     else
     {
         reader.Skip();
     }
     if (!reader.IsEmptyElement)
     {
         reader.ReadStartElement("BeforeActions", Namespaces.Data);
         var actions = new List <PersistenceActionResult>();
         while (reader.NodeType != System.Xml.XmlNodeType.EndElement)
         {
             if (reader.LocalName == "PersistenceActionResult")
             {
                 var action = new PersistenceActionResult();
                 ((System.Xml.Serialization.IXmlSerializable)action).ReadXml(reader);
                 actions.Add(action);
             }
             else
             {
                 reader.Skip();
             }
         }
         BeforeActions = actions.ToArray();
         reader.ReadEndElement();
     }
     else
     {
         reader.Skip();
     }
     if (!reader.IsEmptyElement)
     {
         reader.ReadStartElement("AfterActions", Namespaces.Data);
         var actions = new List <PersistenceActionResult>();
         while (reader.NodeType != System.Xml.XmlNodeType.EndElement)
         {
             if (reader.LocalName == "PersistenceActionResult")
             {
                 var action = new PersistenceActionResult();
                 ((System.Xml.Serialization.IXmlSerializable)action).ReadXml(reader);
                 actions.Add(action);
             }
             else
             {
                 reader.Skip();
             }
         }
         AfterActions = actions.ToArray();
         reader.ReadEndElement();
     }
     else
     {
         reader.Skip();
     }
     reader.ReadEndElement();
 }