예제 #1
0
        private BasicOutboundComm ReadOutboundCommFromDataReader(IDataRecord reader) // Not static -- accesses cache, requiring connection strings
        {
            int      outboundCommId  = reader.GetInt32(0);
            int      senderPersonId  = reader.GetInt32(1);
            int      fromPersonId    = reader.GetInt32(2);
            int      organizationId  = reader.GetInt32(3);
            DateTime createdDateTime = reader.GetDateTime(4);

            int                  resolverClassId  = reader.GetInt32(5);  // Resolve to class name -- cached call more efficient than Join in Select
            string               recipientDataXml = reader.GetString(6); // Interpreted by ResolverClass
            bool                 resolved         = reader.GetBoolean(7);
            DateTime             resolvedDateTime = reader.GetDateTime(8);
            OutboundCommPriority priority         = (OutboundCommPriority)reader.GetInt32(9);

            int      transmitterClassId = reader.GetInt32(10);  // Resolve to class name -- cached call more efficient than Join in Select
            string   payloadXml         = reader.GetString(11); // Interpreted by TransmitterClass
            bool     open = reader.GetBoolean(12);
            DateTime startTransmitDateTime = reader.GetDateTime(13);
            DateTime closedDateTime        = reader.GetDateTime(14);

            int recipientCount        = reader.GetInt32(15); // Set by resolver
            int recipientSuccessCount = reader.GetInt32(16);
            int recipientFailCount    = reader.GetInt32(17);

            // TODO: resolve resolverClass, transmitterClass

            string resolverClass    = GetCachedResolverClassName(resolverClassId);
            string transmitterClass = GetCachedTransmitterClassName(transmitterClassId);

            return(new BasicOutboundComm
                       (outboundCommId, senderPersonId, fromPersonId, organizationId, createdDateTime,
                       resolverClass, recipientDataXml, resolved, resolvedDateTime, priority,
                       transmitterClass, payloadXml, open, startTransmitDateTime, closedDateTime,
                       recipientCount, recipientSuccessCount, recipientFailCount));
        }
예제 #2
0
 public BasicOutboundComm(int outboundCommId, int senderPersonId, int fromPersonId, int organizationId,
                          DateTime createdDateTime, string resolverClass, string recipientDataXml, bool resolved,
                          DateTime resolvedDateTime, OutboundCommPriority priority, string transmitterClass, string payloadXml,
                          bool open, DateTime startTransmitDateTime, DateTime closedDateTime, int recipientCount,
                          int recipientsSuccess, int recipientsFail)
 {
     OutboundCommId        = outboundCommId;
     SenderPersonId        = senderPersonId;
     FromPersonId          = fromPersonId;
     OrganizationId        = organizationId;
     CreatedDateTime       = createdDateTime;
     ResolverClass         = resolverClass;
     RecipientDataXml      = recipientDataXml;
     Resolved              = resolved;
     ResolvedDateTime      = resolvedDateTime;
     Priority              = priority;
     TransmitterClass      = transmitterClass;
     PayloadXml            = payloadXml;
     Open                  = open;
     StartTransmitDateTime = startTransmitDateTime;
     ClosedDateTime        = closedDateTime;
     RecipientCount        = recipientCount;
     RecipientsSuccess     = recipientsSuccess;
     RecipeintsFail        = recipientsFail;
 }
예제 #3
0
        public static OutboundComm Create(Person sender, Person from, Organization organization, string resolverClassString, string recipientDataXml, string transmitterClassString, string payloadXml, OutboundCommPriority priority)
        {
            int newId = SwarmDb.GetDatabaseForWriting().CreateOutboundComm(sender != null? sender.Identity: 0, from != null? from.Identity: 0,
                                                                           organization != null? organization.Identity: 0, resolverClassString,
                                                                           recipientDataXml ?? string.Empty, transmitterClassString,
                                                                           payloadXml, priority);

            return FromIdentityAggressive(newId);
        }
예제 #4
0
        private static OutboundComm Create(Person sender, Person from, Organization organization,
                                           string resolverDataXml, string recipientDataXml, string transmitterClassString, string payloadXml,
                                           OutboundCommPriority priority)
        {
            int newId = SwarmDb.GetDatabaseForWriting()
                        .CreateOutboundComm(sender != null ? sender.Identity : 0, from != null ? from.Identity : 0,
                                            organization != null ? organization.Identity : 0, resolverDataXml,
                                            recipientDataXml ?? string.Empty, transmitterClassString,
                                            payloadXml, priority);

            return(FromIdentityAggressive(newId));
        }
예제 #5
0
        public static OutboundComm Create(Person sender, Person from, Organization organization, CommResolverClass resolverClass, string recipientDataXml, CommTransmitterClass transmitterClass, string payloadXml, OutboundCommPriority priority)
        {
            string resolverClassString = string.Empty;
            if (resolverClass != CommResolverClass.Unknown)
            {
                resolverClassString = resolverClass.ToString();
            }

            string transmitterClassString = string.Empty;
            if (transmitterClass != CommTransmitterClass.Unknown)
            {
                transmitterClassString = "Swarmops.Utility.Communications." + transmitterClass.ToString();
            }

            return Create(sender, from, organization, resolverClassString, recipientDataXml, transmitterClassString,
                          payloadXml, priority);
        }
예제 #6
0
        public static OutboundComm Create(Person sender, Person from, Organization organization,
                                          ICommsResolver resolver, string recipientDataXml, CommTransmitterClass transmitterClass,
                                          string payloadXml, OutboundCommPriority priority)
        {
            string resolverDataXml = string.Empty;

            if (resolver != null)
            {
                resolverDataXml = new ResolverEnvelope(resolver).ToXml();
            }

            string transmitterClassString = string.Empty;

            if (transmitterClass != CommTransmitterClass.Unknown)
            {
                transmitterClassString = "Swarmops.Utility.Communications." + transmitterClass;
            }

            return(Create(sender, from, organization, resolverDataXml, recipientDataXml, transmitterClassString,
                          payloadXml, priority));
        }
예제 #7
0
 public BasicOutboundComm (int outboundCommId, int senderPersonId, int fromPersonId, int organizationId, DateTime createdDateTime, string resolverClass, string recipientDataXml, bool resolved, DateTime resolvedDateTime, OutboundCommPriority priority, string transmitterClass, string payloadXml,
     bool open, DateTime startTransmitDateTime, DateTime closedDateTime, int recipientCount, int recipientsSuccess, int recipientsFail)
 {
     this.OutboundCommId = outboundCommId;
     this.SenderPersonId = senderPersonId;
     this.FromPersonId = fromPersonId;
     this.OrganizationId = organizationId;
     this.CreatedDateTime = createdDateTime;
     this.ResolverClass = resolverClass;
     this.RecipientDataXml = recipientDataXml;
     this.Resolved = resolved;
     this.ResolvedDateTime = resolvedDateTime;
     this.Priority = priority;
     this.TransmitterClass = transmitterClass;
     this.PayloadXml = payloadXml;
     this.Open = open;
     this.StartTransmitDateTime = startTransmitDateTime;
     this.ClosedDateTime = closedDateTime;
     this.RecipientCount = recipientCount;
     this.RecipientsSuccess = recipientsSuccess;
     this.RecipeintsFail = recipientsFail;
 }
예제 #8
0
        public int CreateOutboundComm(int senderPersonId, int fromPersonId, int organizationId, string resolverClass,
                                      string recipientDataXml, string transmitterClass, string payloadXml, OutboundCommPriority priority)
        {
            using (DbConnection connection = GetMySqlDbConnection())
            {
                connection.Open();

                DbCommand command = GetDbCommand("CreateOutboundComm", connection);
                command.CommandType = CommandType.StoredProcedure;

                AddParameterWithName(command, "senderPersonId", senderPersonId);
                AddParameterWithName(command, "fromPersonId", fromPersonId);
                AddParameterWithName(command, "organizationId", organizationId);
                AddParameterWithName(command, "resolverClass",
                                     String.IsNullOrEmpty(resolverClass) ? "0" : resolverClass);
                // Will be turned into ID by stored procedure
                AddParameterWithName(command, "recipientDataXml",
                                     String.IsNullOrEmpty(recipientDataXml) ? string.Empty : recipientDataXml);
                AddParameterWithName(command, "transmitterClass", transmitterClass);
                // Will be turned into ID by stored procedure
                AddParameterWithName(command, "payloadXml", payloadXml);
                AddParameterWithName(command, "priority", (int)priority);
                // convert enum to integerized priority; convert back on field read
                AddParameterWithName(command, "createdDateTime", DateTime.UtcNow);

                return(Convert.ToInt32(command.ExecuteScalar()));
            }
        }
예제 #9
0
        public int CreateOutboundComm(int senderPersonId, int fromPersonId, int organizationId, string resolverClass, string recipientDataXml, string transmitterClass, string payloadXml, OutboundCommPriority priority)
        {
            using (DbConnection connection = GetMySqlDbConnection())
            {
                connection.Open();

                DbCommand command = GetDbCommand("CreateOutboundComm", connection);
                command.CommandType = CommandType.StoredProcedure;

                AddParameterWithName(command, "senderPersonId", senderPersonId);
                AddParameterWithName(command, "fromPersonId", fromPersonId);
                AddParameterWithName(command, "organizationId", organizationId);
                AddParameterWithName(command, "resolverClass", String.IsNullOrEmpty(resolverClass) ? "0" : resolverClass);  // Will be turned into ID by stored procedure
                AddParameterWithName(command, "recipientDataXml", String.IsNullOrEmpty(recipientDataXml) ? string.Empty : recipientDataXml);
                AddParameterWithName(command, "transmitterClass", transmitterClass); // Will be turned into ID by stored procedure
                AddParameterWithName(command, "payloadXml", payloadXml);
                AddParameterWithName(command, "priority", (int)priority);  // convert enum to integerized priority; convert back on field read
                AddParameterWithName(command, "createdDateTime", DateTime.UtcNow);

                return Convert.ToInt32(command.ExecuteScalar());
            }
        }