void btnProcess_Click(object sender, EventArgs e) { Arena.DataLayer.Organization.OrganizationData odata = new Arena.DataLayer.Organization.OrganizationData(); foreach (DataGridItem item in dgLosses.Items) { int familyId = (int)dgLosses.DataKeys[item.ItemIndex]; bool process = false; var cbProcess = item.Cells[1].Controls[0] as CheckBox; if (cbProcess != null && cbProcess.Checked) { process = true; } bool send = false; var cbSend = item.Cells[2].Controls[0] as CheckBox; if (cbSend != null && cbSend.Checked) { send = true; } string query = string.Format( "update cust_ccv_era_losses set processed = {0}, send_email = {1} where family_id = {2}", (process ? "1" : "0"), (send ? "1" : "0"), familyId.ToString()); odata.ExecuteNonQuery(query); } ShowList(); }
public static Arena.Core.Attribute GetPcoAttribute(AttributeGroup attributeGroup, string attributeName, DataType attributeType) { Arena.Core.Attribute pcoAttribute = attributeGroup.Attributes.FindByName(attributeName); if (pcoAttribute == null || pcoAttribute.AttributeId == -1) { Arena.DataLayer.Organization.OrganizationData oData = new Arena.DataLayer.Organization.OrganizationData(); string sql = string.Format( "SELECT ISNULL(MAX(attribute_order),-1) FROM core_attribute WHERE attribute_group_id = {0}", attributeGroup.AttributeGroupId.ToString()); int groupOrder = (int)oData.ExecuteScalar(sql); Guid attributeGuid = Guid.NewGuid(); sql = string.Format( "insert into core_attribute (guid, attribute_group_id, attribute_name, attribute_type, attribute_order) values ('{0}', {1}, '{2}', '{3}', (({4})+2))", attributeGuid.ToString(), attributeGroup.AttributeGroupId.ToString(), attributeName, Enum.Format(typeof(DataType), attributeType, "D"), groupOrder.ToString()); oData.ExecuteNonQuery(sql); pcoAttribute = new Arena.Core.Attribute(attributeGuid); attributeGroup.Attributes.Add(pcoAttribute); } return(pcoAttribute); }
public static AttributeGroup GetPcoAttributeGroup(int organizationId, Lookup pcoAccount) { if (pcoAccount.Qualifier2.Trim() == string.Empty) { pcoAccount.Qualifier2 = Guid.NewGuid().ToString(); pcoAccount.Save(); } Guid groupGuid = new Guid(pcoAccount.Qualifier2); AttributeGroup pcoAttributeGroup = new AttributeGroup(groupGuid); if (pcoAttributeGroup.AttributeGroupId == -1) { Arena.DataLayer.Organization.OrganizationData oData = new Arena.DataLayer.Organization.OrganizationData(); string sql = "SELECT ISNULL(MAX(group_order),-1) FROM core_attribute_group"; int groupOrder = (int)oData.ExecuteScalar(sql); sql = string.Format( "insert into core_attribute_group (guid, organization_id, group_name, group_order, display_location) values ('{0}', {1}, 'PCO - {2}', (({3})+2), 0)", groupGuid.ToString(), organizationId.ToString(), pcoAccount.Value, groupOrder.ToString()); oData.ExecuteNonQuery(sql); pcoAttributeGroup = new AttributeGroup(groupGuid); } GetPcoAttribute(pcoAttributeGroup, "PCO_Last_Sync", DataType.Document); GetPcoAttribute(pcoAttributeGroup, "PCO_Last_Sync_Arena", DataType.Document); GetPcoAttribute(pcoAttributeGroup, "PCO_ID", DataType.Int); GetPcoAttribute(pcoAttributeGroup, "PCO_Password", DataType.String); return(pcoAttributeGroup); }
public WorkerResultStatus SendEmail(out string message, out int state) { WorkerResultStatus workerResultStatus = WorkerResultStatus.Ok; message = string.Empty; state = STATE_OK; try { AreaOutreachCoordinatorCollection pastors = new AreaOutreachCoordinatorCollection(); pastors.LoadByRole(1623); Arena.DataLayer.Organization.OrganizationData oData = new Arena.DataLayer.Organization.OrganizationData(); string query = "SELECT * FROM cust_ccv_era_losses WHERE processed = 1 AND send_email = 1 AND sent = 0"; SqlDataReader rdr = oData.ExecuteReader(query); while (rdr.Read()) { Family family = new Family((int)rdr["family_id"]); FamilyMember familyHead = family.FamilyHead; if (familyHead != null && familyHead.Emails.Count > 0) { Area area = familyHead.Area; if (area != null) { Person pastor = null; foreach (AreaOutreachCoordinator coord in pastors) { if (coord.AreaId == area.AreaID) { pastor = new Person(coord.PersonId); break; } } if (pastor != null) { Arena.Custom.CCV.Core.Communications.PotentialLossNotification lossNotification = new Arena.Custom.CCV.Core.Communications.PotentialLossNotification(); Dictionary <string, string> fields = new Dictionary <string, string>(); fields.Add("##RecipientFirstName##", familyHead.NickName); fields.Add("##RecipientLastName##", familyHead.LastName); fields.Add("##RecipientEmail##", familyHead.Emails.FirstActive); fields.Add("##PastorName##", pastor.FullName); fields.Add("##PastorEmail##", pastor.Emails.FirstActive); PersonPhone bPhone = pastor.Phones.FindByType(SystemLookup.PhoneType_Business); fields.Add("##PastorBusinessPhone##", bPhone != null ? bPhone.Number : string.Empty); PersonPhone cPhone = pastor.Phones.FindByType(SystemLookup.PhoneType_Cell); fields.Add("##PastorCellPhone##", cPhone != null ? cPhone.Number : string.Empty); if (lossNotification.Send(familyHead.Emails.FirstActive, fields, familyHead.PersonID)) { string updateQuery = string.Format("UPDATE cust_ccv_era_losses SET sent = 1 WHERE family_id = {0}", family.FamilyID.ToString()); oData.ExecuteNonQuery(updateQuery); } } } } } rdr.Close(); } catch (Exception ex) { workerResultStatus = WorkerResultStatus.Exception; message = "An error occured while processing ERA Loss Notifications.\n\nMessage\n------------------------\n" + ex.Message + "\n\nStack Trace\n------------------------\n" + ex.StackTrace; } return(workerResultStatus); }