예제 #1
0
        public ActionResult Save(string datapointValues, string date, string campaignID, string lobID, string siteID)
        {
            //string[] splitDatapointIds = datapointIds.TrimEnd( ',' ).Split( ',' );
            string[] splitDatapointValues = datapointValues.TrimEnd(',').Split(',');
            string   message = string.Empty;

            #region Create Data set
            //DataSet dataset = new DataSet();
            //dataset.Locale = CultureInfo.InvariantCulture;
            DataTable datatable = new DataTable();
            //dataset.Tables.Add( "AHCData" );

            datatable.Columns.Add("DatapointID", typeof(long));
            datatable.Columns.Add("SiteID", typeof(long));
            datatable.Columns.Add("CampaignID", typeof(long));
            datatable.Columns.Add("LoBID", typeof(long));
            datatable.Columns.Add("Date", typeof(DateTime));
            //datatable.Columns.Add( "Date", typeof( string ) );
            datatable.Columns.Add("DataValue", typeof(string));
            datatable.Columns.Add("UserName", typeof(string));
            datatable.Columns.Add("DateModified", typeof(DateTime));
            string datemodified = DateTime.Now.ToString();
            string user         = User.Identity.GetUserName();

            DataRow datarow;
            #endregion

            try
            {
                foreach (var datapointValue in splitDatapointValues)
                {
                    long     id    = 0;
                    string   dt    = string.Empty;
                    string   value = string.Empty;
                    string[] splitDatapointValue = datapointValue.Split(':');
                    string[] splitIdDate         = splitDatapointValue[0].Split('_');

                    id = Convert.ToInt64(splitIdDate[1]);
                    dt = splitIdDate[0].Replace("x", "-");

                    value = splitDatapointValue[1].ToString().Replace("%", "").Trim();

                    datarow = datatable.NewRow();
                    datarow["DatapointID"]  = id;
                    datarow["SiteID"]       = siteID;
                    datarow["CampaignID"]   = campaignID;
                    datarow["LoBID"]        = lobID;
                    datarow["Date"]         = dt;
                    datarow["DataValue"]    = value;
                    datarow["UserName"]     = user;
                    datarow["DateModified"] = datemodified;

                    datatable.Rows.Add(datarow);
                }

                _ahcService.Save(datatable);
                message = "Data saved.";
            }
            catch (Exception ex)
            {
                message = "Unexpected error encountered. Please contact your system administrator.";
                string auditEntry = string.Empty;

                auditEntry += @"Error saving Assumption and Headcount. \n";
                auditEntry += string.Format("ErrorMessage: {0} \n", ex.Message);
                auditEntry += string.Format("TargetName: {0} \n", ex.TargetSite.Name);
                auditEntry += string.Format("StackTrace: {0} \n", ex.StackTrace);

                AuditTrailViewModel audit = new AuditTrailViewModel()
                {
                    AuditEntry   = auditEntry,
                    CreatedBy    = User.Identity.GetUserName(),
                    DateCreated  = DateTime.Now,
                    DateModified = null
                };
                _auditTrailService.Create(audit);
            }

            var model = new Model.Web.CommonView()
            {
                Message = message
            };
            return(Json(model, JsonRequestBehavior.AllowGet));
        }