public DailyAlertEntity CreateFromCSV(DailyAlertEntity alert)
        {
            string sqlCommand = "dbo.pCreateDailyAlerts";

            try
            {
                Database db = DatabaseFactory.CreateDatabase("HilltopDatabase");

                using (DbCommand cmd = db.GetStoredProcCommand(sqlCommand))
                {
                    AddCreateCSVParametersToCommand(db, cmd, alert);
                    db.AddOutParameter(cmd, "@AlertID", DbType.Int32, 4);
                    db.ExecuteNonQuery(cmd);
                    alert.ID = int.Parse(db.GetParameterValue(cmd, "@AlertID").ToString());
                }
            }
            catch (Exception ex)
            {
                string exceptionMessages = string.Empty;
                ExceptionHelper.GetInnerExceptions(ex, out exceptionMessages);

                string message = "Create Daily Alert failed at the data access layer"
                                 + Environment.NewLine + exceptionMessages;
                throw new Exception(message);
            }
            return(alert);
        }
Exemplo n.º 2
0
        protected void gvRmoaAlerts_RowUpdating(object sender, System.Web.UI.WebControls.GridViewUpdateEventArgs e)
        {
            //DailyAlertEntity alertToUpdate = gvRmoaAlerts.Rows[e.RowIndex].DataItem as DailyAlertEntity;
            DailyAlertEntity alertToUpdate = new DailyAlertEntity();

            alertToUpdate.ID = int.Parse(txtID.Text);

            TextBox txtComments = (TextBox)gvRmoaAlerts.Rows[e.RowIndex].FindControl("txtRmoaComments");

            alertToUpdate.Comment = txtComments.Text;

            DropDownList ddlStatus = (DropDownList)gvRmoaAlerts.Rows[e.RowIndex].FindControl("ddlRmoaStatus");

            alertToUpdate.Status = ddlStatus.Text;

            alertToUpdate.Username = HttpContext.Current.User.Identity.Name;

            try
            {
                new DailyAlertBLL().UpdateForRmoa(alertToUpdate);
                Response.Redirect(Request.Url.AbsoluteUri);
            }
            catch (Exception ex)
            {
                errorMessages.CssClass = "error";
                errorMessages.Text     = ex.Message;
                currTabNo.Text         = "0";
            }
        }
        public DailyAlertEntity UpdateForRmoa(DailyAlertEntity alert)
        {
            string sqlCommand = "dbo.pUpdateDailyAlerts";

            try
            {
                Database db = DatabaseFactory.CreateDatabase("HilltopDatabase");

                using (DbCommand cmd = db.GetStoredProcCommand(sqlCommand))
                {
                    AddUpdateRmoaParametersToCommand(db, cmd, alert);
                    db.ExecuteNonQuery(cmd);
                }
            }
            catch (Exception ex)
            {
                string exceptionMessages = string.Empty;
                ExceptionHelper.GetInnerExceptions(ex, out exceptionMessages);

                string message = "Update Daily Alert failed at the data access layer"
                                 + Environment.NewLine + exceptionMessages;
                throw new Exception(message);
            }
            return(alert);
        }
        private DailyAlertEntity PopulateAlertFromDataReader(IDataReader dataReader)
        {
            DailyAlertEntity alert = new DailyAlertEntity();

            alert.ID = GetInt("ID", dataReader);
            alert.ServiceProvider = GetString("ServiceProvider", dataReader);
            alert.ConsentID       = GetString("ConsentID", dataReader);
            alert.ActivityNumber  = GetString("ActivityNumber", dataReader);
            alert.WaterUseType    = GetString("Type", dataReader);
            alert.Meters          = GetString("Meters", dataReader);
            alert.Type            = GetString("Type", dataReader);
            alert.Limit           = GetString("Limit", dataReader);
            alert.MaxUse          = GetString("MaxUse", dataReader);
            alert.Comment         = GetString("Comment", dataReader);

            alert.Ignore = GetIntValue("Ignore", dataReader);

            alert.IgnoreReason     = GetString("IgnoreReason", dataReader);
            alert.Status           = GetString("Status", dataReader);
            alert.Username         = GetString("Username", dataReader);
            alert.PercentOverLimit = GetString("PercentOverLimit", dataReader);
            alert.MaxAvDate        = GetDateTime("MaxAvDate", dataReader);
            alert.RunDate          = GetDateTime("RunDate", dataReader);
            alert.LastModifiedDate = GetDateTime("LastModifiedDate", dataReader);
            alert.FirstNCDate      = GetNullableDateTime("FirstNCDate", dataReader);
            alert.LastNCDate       = GetNullableDateTime("LastNCDate", dataReader);

            return(alert);
        }
 public DailyAlertEntity UpdateForRmoa(DailyAlertEntity alert)
 {
     if (alert.Status.Equals("Not Set"))
     {
         throw new Exception("Status cannot be set to 'Not Set'");
     }
     return(new DailyAlertsDAL().UpdateForRmoa(alert));
 }
 private void AddUpdateRmoaParametersToCommand(Database db, DbCommand cmd, DailyAlertEntity alert)
 {
     db.AddInParameter(cmd, "@ID", DbType.Int32, alert.ID);
     db.AddInParameter(cmd, "@Ignore", DbType.Int32, alert.Ignore);
     db.AddInParameter(cmd, "@Status", DbType.String, alert.Status);
     db.AddInParameter(cmd, "@Comment", DbType.String, alert.Comment);
     db.AddInParameter(cmd, "@Username", DbType.String, alert.Username);
 }
 private void AddCreateCSVParametersToCommand(Database db, DbCommand cmd, DailyAlertEntity alert)
 {
     db.AddInParameter(cmd, "@ServiceProvider", DbType.String, alert.ServiceProvider);
     db.AddInParameter(cmd, "@ConsentID", DbType.String, alert.ConsentID);
     db.AddInParameter(cmd, "@ActivityNumber", DbType.String, alert.ActivityNumber);
     db.AddInParameter(cmd, "@Meters", DbType.String, alert.Meters);
     db.AddInParameter(cmd, "@Type", DbType.String, alert.Type);
     db.AddInParameter(cmd, "@Limit", DbType.String, alert.Limit);
     db.AddInParameter(cmd, "@MaxUse", DbType.String, alert.MaxUse);
     db.AddInParameter(cmd, "@PercentOverLimit", DbType.String, alert.PercentOverLimit);
     db.AddInParameter(cmd, "@DateofHighestOverage", DbType.DateTime, alert.MaxAvDate);
     db.AddInParameter(cmd, "@DateofEarliestNoncompliance", DbType.DateTime, alert.FirstNCDate);
     db.AddInParameter(cmd, "@DateofLatestNoncompliance", DbType.DateTime, alert.LastNCDate);
     db.AddInParameter(cmd, "@Ignore", DbType.Int32, alert.Ignore);
     db.AddInParameter(cmd, "@Rundate", DbType.Date, alert.RunDate);
 }
Exemplo n.º 8
0
 // RMOA Tab grid
 protected void gvRmoaAlerts_RowDataBound(object sender, GridViewRowEventArgs e)
 {
     if (e.Row.RowType == DataControlRowType.DataRow && gvRmoaAlerts.EditIndex == e.Row.RowIndex)
     {
         DropDownList ddlStatus = (DropDownList)e.Row.FindControl("ddlRmoaStatus");
         if (string.IsNullOrEmpty(ddlStatus.SelectedValue))
         {
             ddlStatus.DataTextField  = "Description";
             ddlStatus.DataValueField = "Description";
             ddlStatus.DataSource     = new DailyAlertBLL().GetDailyAlertsStatus();
             ddlStatus.DataBind();
             string selectedStatus = DataBinder.Eval(e.Row.DataItem, "Status").ToString();
             if (!string.IsNullOrEmpty(selectedStatus))
             {
                 ddlStatus.Items.FindByValue(selectedStatus).Selected = true;
             }
         }
         DailyAlertEntity alertToUpdate = (DailyAlertEntity)e.Row.DataItem;
         txtID.Text = alertToUpdate.ID.ToString();
     }
 }
        public List <DailyAlertEntity> SetIgnoreFlag(List <DailyAlertEntity> alerts)
        {
            List <DailyAlertEntity>    returnAlerts = new List <DailyAlertEntity>();
            List <ConsentIgnoreEntity> ignoreList   = GetCurrentIgnoreList();

            if (alerts != null && alerts.Count > 0)
            {
                foreach (DailyAlertEntity dae in alerts)
                {
                    DailyAlertEntity toAdd = dae;
                    if (ignoreList.Exists(e => e.ConsentID.Equals(toAdd.ConsentID)))
                    {
                        toAdd.Ignore = 1;
                    }
                    else
                    {
                        toAdd.Ignore = 0;
                    }
                    returnAlerts.Add(toAdd);
                }
            }
            return(returnAlerts);
        }
        /*
         *  Service Provider,ConsentID or Water Group,Activity Number,Meters,Type,Limit,Max Use,Percent Over Limit,Date of Highest Overage,Date of Earliest Non-compliance,Date of Latest Non-compliance
         *  WaterCheck,CRC991620.5,CRC991620.5-1,L35/0855-M1 + L35/0906-M1,Take Rate,90.0 l/s,91.9 l/s,2.1%,23-Jan-2019 11:30:00,23-Jan-2019 00:00:00,26-Jan-2019 09:15:00
         *  WaterCheck,CRC990501.2,CRC990501.2-1,M35/11240-M1 + M35/11241-M1 + M35/11242-M1,Take Rate,51.8 l/s,63.3 l/s,22.4%,25-Jan-2019 12:30:00,24-Jan-2019 11:15:00,26-Jan-2019 11:30:00
         *
         * */
        public List <DailyAlertEntity> GetFileAlerts()
        {
            List <DailyAlertEntity> alerts = new List <DailyAlertEntity>();
            var fileStream = new FileStream(GetFileNameWithLocation(), FileMode.Open, FileAccess.Read);

            using (var streamReader = new StreamReader(fileStream, Encoding.UTF8))
            {
                string line = streamReader.ReadLine();  // Header line ignore
                while ((line = streamReader.ReadLine()) != null)
                {
                    if (!string.IsNullOrEmpty(line) && !line.Contains(REPORT_END))
                    {
                        var values = line.Split(',');
                        if (values.Length == FIELD_COUNT)
                        {
                            DailyAlertEntity alert = new DailyAlertEntity();
                            alert.ServiceProvider  = values[INDEX_SERVP];
                            alert.ConsentID        = values[INDEX_CONSNT];
                            alert.ActivityNumber   = values[INDEX_ACTNO];
                            alert.Meters           = values[INDEX_METERS];
                            alert.Type             = values[INDEX_TYPE];
                            alert.Limit            = values[INDEX_LIMIT];
                            alert.MaxUse           = values[INDEX_MAXUSE];
                            alert.PercentOverLimit = values[INDEX_PEROVR];
                            alert.MaxAvDate        = DateTime.Parse(values[INDEX_HUSEDT]);
                            alert.FirstNCDate      = DateTime.Parse(values[INDEX_ENCDT]);
                            alert.LastNCDate       = DateTime.Parse(values[INDEX_LNCDT]);
                            alert.RunDate          = this.RunDate.Date;
                            alerts.Add(alert);
                        }
                    }
                }
            }

            return(alerts);
        }
Exemplo n.º 11
0
        public DailyAlertEntity CreateFromCSV(DailyAlertEntity alert)
        {
            // First check to see if record already exists
            DailyAlertSearchCriteria searchCriteria = new DailyAlertSearchCriteria();

            searchCriteria.ConsentID      = alert.ConsentID;
            searchCriteria.Type           = alert.Type;
            searchCriteria.ActivityNumber = alert.ActivityNumber;
            searchCriteria.StartDate      = alert.RunDate.Date;
            searchCriteria.EndDate        = alert.RunDate.Date;
            searchCriteria.IgnoreAll      = "es";

            List <DailyAlertEntity> alerts = SearchDailyAlerts(searchCriteria);

            if (alerts == null || alerts.Count == 0)
            {
                alert = new DailyAlertsDAL().CreateFromCSV(alert);
            }
            else
            {
                Log.Warn("Alert already exists for ConsentID:[" + alert.ConsentID + "] Type:[" + alert.Type + "] Activity Number:[" + alert.ActivityNumber + "] RunDate:[" + alert.RunDate.ToShortDateString() + "]");
            }
            return(alert);
        }