Esempio n. 1
0
        /// {"primaryKeyId":6, "column":1, "value":"11:21"}
        public void UpdateGrid(string ContextKey, object[] ChangesArray)
        {
            //List<string> fieldName = new List<string>();
            MetaGridContextKey gridContextKey = UtilHelper.JsonDeserialize <MetaGridContextKey>(ContextKey);
            List <MetaObject>  changed        = new List <MetaObject>();

            CHelper.AddToContext("GridUpdated", 1);

            LoadMetaViewPreference(gridContextKey.ViewName);
            MetaView CurrentView = GetViewByName(gridContextKey.ViewName);

            MetaObject[] list = CurrentView.List(mvPref);

            if (CurrentView.PrimaryGroupBy != null || CurrentView.SecondaryGroupBy == null)
            {
                if (CurrentView.SecondaryGroupBy != null)
                {
                    list = MetaViewGroupUtil.ExcludeCollapsed(MetaViewGroupByType.Secondary, CurrentView.SecondaryGroupBy, CurrentView.PrimaryGroupBy, mvPref, list);
                }

                list = MetaViewGroupUtil.ExcludeCollapsed(MetaViewGroupByType.Primary, CurrentView.PrimaryGroupBy, null, mvPref, list);
            }


            foreach (Dictionary <string, object> obj in ChangesArray)
            {
                int    primaryKeyId = Convert.ToInt32(obj["primaryKeyId"]);
                int    columnId     = Convert.ToInt32(obj["column"]);
                string value        = Convert.ToString(obj["value"]);

                MetaObject tmp       = GetMetaObjectById(list, primaryKeyId);
                MetaObject curObject = null;
                if (tmp != null)
                {
                    curObject = MetaObjectActivator.CreateInstance(tmp.GetMetaType(), primaryKeyId);
                }
                else
                {
                    continue;
                }

                curObject.Properties[GetFieldNameByIndex(columnId)].Value = GetMinutesFromString(value);

                changed.Add(curObject);
            }


            using (TransactionScope tran = DataContext.Current.BeginTransaction())
            {
                foreach (MetaObject changeObj in changed)
                {
                    changeObj.Save();
                }

                tran.Commit();
            }
        }
Esempio n. 2
0
        public MetaView GetViewByName(string ViewName)
        {
            MetaView retVal = null;

            retVal = Mediachase.Ibn.Data.DataContext.Current.MetaModel.MetaViews[ViewName];

            if (retVal == null)
            {
                throw new ArgumentException(String.Format("Cant find view with name: {0}", ViewName));
            }

            return(retVal);
        }
        private MetaView GetMetaView()
        {
            MetaView currentView = new MetaView(TimeTrackingEntry.GetAssignedMetaClass(), "FinanceProjectReport", string.Empty);

            foreach (MetaField mf in currentView.MetaClass.Fields)
            {
                currentView.AvailableFields.Add(mf);
            }

            // Total
            currentView.TotalGroupBy = new GroupByElement();
            currentView.TotalGroupBy.IsPreGroupObjectVisible  = false;
            currentView.TotalGroupBy.IsPostGroupObjectVisible = true;

            currentView.TotalGroupBy.PostGroupObjectFields.Add(new GroupByObjectField("Title", ValueSourceType.Custom, CHelper.GetResFileString("{IbnFramework.Global:_mc_Total}")));
            currentView.TotalGroupBy.PostGroupObjectFields.Add(new GroupByObjectField("DayT", ValueSourceType.Function, GroupByObjectField.SumFunction));
            currentView.TotalGroupBy.PostGroupObjectFields.Add(new GroupByObjectField("TotalApproved", ValueSourceType.Function, GroupByObjectField.SumFunction));
            currentView.TotalGroupBy.PostGroupObjectFields.Add(new GroupByObjectField("Cost", ValueSourceType.Function, GroupByObjectField.SumFunction));

            // PrimaryGroupBy, SecondaryGroupBy
            if (GroupingList.SelectedValue == GroupingWeekUser)
            {
                currentView.PrimaryGroupBy = new GroupByElement("StartDate");
                currentView.PrimaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("Title", ValueSourceType.Field, "StartDate", false));
                currentView.SecondaryGroupBy = new GroupByElement("Owner");
                currentView.SecondaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("Title", ValueSourceType.Field, "Owner", false));
            }
            else
            {
                currentView.PrimaryGroupBy = new GroupByElement("Owner");
                currentView.PrimaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("Title", ValueSourceType.Field, "Owner", false));
                currentView.SecondaryGroupBy = new GroupByElement("StartDate");
                currentView.SecondaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("Title", ValueSourceType.Field, "StartDate", false));
            }
            currentView.PrimaryGroupBy.IsPreGroupObjectVisible    = true;
            currentView.PrimaryGroupBy.IsPostGroupObjectVisible   = false;
            currentView.SecondaryGroupBy.IsPreGroupObjectVisible  = true;
            currentView.SecondaryGroupBy.IsPostGroupObjectVisible = false;

            currentView.PrimaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("DayT", ValueSourceType.Function, GroupByObjectField.SumFunction));
            currentView.PrimaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("TotalApproved", ValueSourceType.Function, GroupByObjectField.SumFunction));
            currentView.PrimaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("Cost", ValueSourceType.Function, GroupByObjectField.SumFunction));
            currentView.PrimaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("ParentBlockId", ValueSourceType.Field, "ParentBlockId"));

            currentView.SecondaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("DayT", ValueSourceType.Function, GroupByObjectField.SumFunction));
            currentView.SecondaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("TotalApproved", ValueSourceType.Function, GroupByObjectField.SumFunction));
            currentView.SecondaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("Cost", ValueSourceType.Function, GroupByObjectField.SumFunction));
            currentView.SecondaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("ParentBlockId", ValueSourceType.Field, "ParentBlockId"));

            return(currentView);
        }
Esempio n. 4
0
        /// <summary>
        /// Creates the default preference.
        /// </summary>
        /// <param name="View">The view.</param>
        public static void CreateDefaultPreference(MetaView View)
        {
            McMetaViewPreference pref = new McMetaViewPreference();

            pref.MetaView = View;

            foreach (MetaField field in View.MetaClass.Fields)
            {
                pref.SetAttribute(field.Name, McMetaViewPreference.AttrWidth, 150);
            }

            pref.Attributes.Set("MarginTop", 10);
            pref.Attributes.Set("MarginLeft", 10);
            pref.Attributes.Set("MarginRight", 10);
            pref.Attributes.Set("MarginBottom", 10);
            Mediachase.Ibn.Core.UserMetaViewPreference.SaveDefault(pref);
        }
        private McMetaViewPreference CreateDefaultReportPreferenceTimeTracking(MetaView View)
        {
            McMetaViewPreference pref = new McMetaViewPreference();

            pref.MetaView = View;

            pref.ShowAllMetaField();

            foreach (MetaField field in pref.GetVisibleMetaField())
            {
                if (field.Name != "Title" && field.Name != "TotalApproved" && field.Name != "Rate" && field.Name != "Cost" && field.Name != "DayT")
                {
                    pref.HideMetaField(field.Name);
                }
                else
                {
                    if (field.Name == "Title")
                    {
                        pref.SetAttribute <int>(field.Name, McMetaViewPreference.AttrIndex, 0);
                    }
                    else if (field.Name == "DayT")
                    {
                        pref.SetAttribute <int>(field.Name, McMetaViewPreference.AttrIndex, 1);
                    }
                    else if (field.Name == "TotalApproved")
                    {
                        pref.SetAttribute <int>(field.Name, McMetaViewPreference.AttrIndex, 2);
                    }
                    else if (field.Name == "Rate")
                    {
                        pref.SetAttribute <int>(field.Name, McMetaViewPreference.AttrIndex, 3);
                    }
                    else
                    {
                        pref.SetAttribute <int>(field.Name, McMetaViewPreference.AttrIndex, 4);
                    }
                }
            }

            pref.Attributes.Set("PageSize", -1);

            MetaViewGroupUtil.CollapseAll(MetaViewGroupByType.Secondary, pref);

            return(pref);
        }
Esempio n. 6
0
        public void Invoke(object Sender, object Element)
        {
            if (Element is CommandParameters)
            {
                CommandParameters cp = (CommandParameters)Element;
                if (cp.CommandArguments == null)
                {
                    return;
                }
                DateTime dtStart = DateTime.Parse(cp.CommandArguments["primaryKeyId"], CultureInfo.InvariantCulture);

                MetaView             currentView = DataContext.Current.MetaModel.MetaViews["TT_MyGroupByWeekProject"];
                McMetaViewPreference pref        = CHelper.GetMetaViewPreference(currentView);
                pref.SetAttribute <DateTime>("TTFilter_DTCWeek", "TTFilter_DTCWeek", dtStart);
                Mediachase.Ibn.Core.UserMetaViewPreference.Save(Mediachase.IBN.Business.Security.CurrentUser.UserID, pref);

                ((System.Web.UI.Control)(Sender)).Page.Response.Redirect("~/Apps/TimeTracking/Pages/Public/ListTimeTrackingNew.aspx?ViewName=TT_MyGroupByWeekProject", true);
            }
        }
Esempio n. 7
0
        public ActionResult Edit(Guid?id)
        {
            if (id.HasValue)
            {
                MetaView obj = MetaViewHelper.Get(id.Value);
                if (obj == null)
                {
                    return(MessageHelper.FormedContentObjectNotFound());
                }

                MetaViewModel.CreateMap();
                MetaViewModel model = Mapper.Map <MetaView, MetaViewModel>(obj);
                return(View(model));
            }
            else
            {
                return(View(new MetaViewModel()));
            }
        }
Esempio n. 8
0
        internal void Load(MetaView metaView)
        {
            _metaClassName = metaView.MetaClassName;
            _availableFieldNames = metaView.AvailableFieldNames;

            List<string> fieldNames = new List<string>(_availableFieldNames);

            mcweb_MetaViewPreferenceRow[] preferenceRows = mcweb_MetaViewPreferenceRow.List(FilterElement.EqualElement("MetaViewName", metaView.Name), FilterElement.IsNullElement("PrincipalId"));
            if(preferenceRows.Length == 0)
            {
                preferenceRows = new mcweb_MetaViewPreferenceRow[] { null };
            }

            foreach (mcweb_MetaViewPreferenceRow preferenceRow in preferenceRows)
            {
                MetaViewPreferenceInfo preferenceInfo = new MetaViewPreferenceInfo();
                preferenceInfo.Load(preferenceRow, fieldNames);
                _preferences.Add(preferenceInfo);
            }
        }
Esempio n. 9
0
        internal void Load(MetaView metaView)
        {
            _metaClassName       = metaView.MetaClassName;
            _availableFieldNames = metaView.AvailableFieldNames;

            List <string> fieldNames = new List <string>(_availableFieldNames);

            mcweb_MetaViewPreferenceRow[] preferenceRows = mcweb_MetaViewPreferenceRow.List(FilterElement.EqualElement("MetaViewName", metaView.Name), FilterElement.IsNullElement("PrincipalId"));
            if (preferenceRows.Length == 0)
            {
                preferenceRows = new mcweb_MetaViewPreferenceRow[] { null };
            }

            foreach (mcweb_MetaViewPreferenceRow preferenceRow in preferenceRows)
            {
                MetaViewPreferenceInfo preferenceInfo = new MetaViewPreferenceInfo();
                preferenceInfo.Load(preferenceRow, fieldNames);
                _preferences.Add(preferenceInfo);
            }
        }
Esempio n. 10
0
        /// <summary>
        /// Gets all meta fields.
        /// </summary>
        /// <param name="View">The view.</param>
        /// <returns></returns>
        public static List <MetaField> GetAllMetaFields(MetaView View)
        {
            List <MetaField> retVal = new List <MetaField>();

            foreach (MetaField field in View.MetaClass.Fields)
            {
                retVal.Add(field);
            }

            if (View.Card != null)
            {
                MetaClass mcCard = MetaDataWrapper.GetMetaClassByName(View.Card.Name);
                foreach (MetaField field in mcCard.Fields)
                {
                    if (CHelper.CheckCardField(View.MetaClass, field))
                    {
                        retVal.Add(field);
                    }
                }
            }

            return(retVal);
        }
Esempio n. 11
0
        public void Invoke(object Sender, object Element)
        {
            if (Element is CommandParameters)
            {
                CommandParameters cp = (CommandParameters)Element;

                if (cp.CommandArguments["groupType"] == null || cp.CommandArguments["primaryKeyId"] == null)
                {
                    throw new ArgumentException("Some expected parameters are null for CollapseExpandBlockTimesheetHandler");
                }

                string ViewName = CHelper.GetFromContext("MetaViewName").ToString();

                if (ViewName != null && ViewName != string.Empty)
                {
                    MetaView CurrentView = Mediachase.Ibn.Data.DataContext.Current.MetaModel.MetaViews[ViewName];
                    if (CurrentView == null)
                    {
                        throw new ArgumentException(String.Format("Cant find MetaView: {0}", ViewName));
                    }

                    McMetaViewPreference mvPref = Mediachase.Ibn.Core.UserMetaViewPreference.Load(CurrentView, Mediachase.IBN.Business.Security.CurrentUser.UserID);
                    if (cp.CommandArguments["groupType"] == MetaViewGroupByType.Primary.ToString())
                    {
                        MetaViewGroupUtil.CollapseOrExpand(MetaViewGroupByType.Primary, mvPref, cp.CommandArguments["primaryKeyId"]);
                    }
                    else
                    {
                        MetaViewGroupUtil.CollapseOrExpand(MetaViewGroupByType.Secondary, mvPref, cp.CommandArguments["primaryKeyId"]);
                    }

                    CHelper.RequireBindGrid();
                    CHelper.AddToContext("DontShowEditPopup", 1);
                    UserMetaViewPreference.Save(Mediachase.IBN.Business.Security.CurrentUser.UserID, mvPref);
                }
            }
        }
Esempio n. 12
0
        public ActionResult EditExternalMethod(Guid?id, Guid?ViewId)
        {
            MetaViewExternalMethodModel model = null;

            if (id.HasValue)
            {
                var att = MetaViewHelper.GetExternalMethod(id.Value);
                if (att == null)
                {
                    return(MessageHelper.FormedContentObjectNotFound());
                }

                MetaViewExternalMethodModel.CreateMap();
                model = Mapper.Map <MetaViewExternalMethod, MetaViewExternalMethodModel>(att);
                return(View(model));
            }
            else if (ViewId.HasValue)
            {
                MetaView item = MetaViewHelper.Get(ViewId.Value);
                if (item != null)
                {
                    return(View(new MetaViewExternalMethodModel
                    {
                        MetaViewId = item.Id,
                        MetaViewCaption = item.Caption,
                    }));
                }
                else
                {
                    return(MessageHelper.FormedContentObjectNotFound());
                }
            }
            else
            {
                return(MessageHelper.FormedContentObjectNotFound());
            }
        }
Esempio n. 13
0
        private void LoadMetaViewPreference(string ContextKey)
        {
            MetaView view = GetViewByName(ContextKey);

            mvPref = Mediachase.Ibn.Core.UserMetaViewPreference.Load(view, Mediachase.Ibn.Data.Services.Security.CurrentUserId);
        }
Esempio n. 14
0
        private void BindGrid()
        {
            DataTable dt = new DataTable();

            dt.Columns.Add(new DataColumn("Title", typeof(string)));
            dt.Columns.Add(new DataColumn("Total", typeof(string)));
            dt.Columns.Add(new DataColumn("TotalApproved", typeof(string)));
            dt.Columns.Add(new DataColumn("Rate", typeof(string)));
            dt.Columns.Add(new DataColumn("Cost", typeof(string)));

            MetaView currentView = GetMetaView();

            currentView.Filters = GetFilters();

            McMetaViewPreference currentPreferences = CreateDefaultReportPreferenceTimeTracking(currentView);

            MetaObject[] list = currentView.List(currentPreferences);

            foreach (MetaObject mo in list)
            {
                DataRow row             = dt.NewRow();
                string  additionalTitle = string.Empty;

                string prefix  = "";
                string postfix = "";

                if (cbShowWeekNumber.Checked && mo.Properties["MetaViewGroupByType"] != null && mo.Properties["MetaViewGroupByType"].OriginalValue.ToString() != MetaViewGroupByType.Total.ToString())
                {
                    DateTime dtNew = DateTime.MinValue;

                    try
                    {
                        dtNew = (DateTime)mo.Properties["Title"].Value;
                    }
                    catch
                    {
                    }

                    if (dtNew != DateTime.MinValue)
                    {
                        additionalTitle = string.Format("(#{0})", Iso8601WeekNumber.GetWeekNumber((DateTime)mo.Properties["Title"].Value));
                    }
                }

                // Primary Grouping
                if (mo.Properties["MetaViewGroupByType"] != null && mo.Properties["MetaViewGroupByType"].OriginalValue.ToString() == MetaViewGroupByType.Primary.ToString())
                {
                    prefix  = "<b>";
                    postfix = "</b>";
                    if (GroupingList.SelectedValue == GroupingWeekUser)
                    {
                        row["Title"] = String.Format("{0}{1} - {2}{3} {4}", prefix, ((DateTime)mo.Properties["Title"].Value).ToString("d MMM yyyy"), ((DateTime)mo.Properties["Title"].Value).AddDays(6).ToString("d MMM yyyy"), prefix, additionalTitle);
                    }
                    else
                    {
                        row["Title"] = String.Format("{0}{1}{2} {3}", prefix, mo.Properties["Title"].Value.ToString(), postfix, additionalTitle);
                    }
                }
                // Secondary Grouping
                else if (mo.Properties["MetaViewGroupByType"] != null && mo.Properties["MetaViewGroupByType"].OriginalValue.ToString() == MetaViewGroupByType.Secondary.ToString())
                {
                    prefix  = "<b>";
                    postfix = "</b>";
                    if (GroupingList.SelectedValue == GroupingUserWeek)
                    {
                        row["Title"] = String.Format("<div style='padding-left: 25px;'>{0}{1} - {2}{3} {4}</div>", prefix, ((DateTime)mo.Properties["Title"].Value).ToString("d MMM yyyy"), ((DateTime)mo.Properties["Title"].Value).AddDays(6).ToString("d MMM yyyy"), prefix, additionalTitle);
                    }
                    else
                    {
                        row["Title"] = String.Format("<div style='padding-left: 25px;'>{0}{1}{2} {3}</div>", prefix, mo.Properties["Title"].Value.ToString(), postfix, additionalTitle);
                    }
                }
                // Total
                else if (mo.Properties["MetaViewGroupByType"] != null && mo.Properties["MetaViewGroupByType"].OriginalValue.ToString() == MetaViewGroupByType.Total.ToString())
                {
                    prefix       = "<b>";
                    postfix      = "</b>";
                    row["Title"] = String.Format("{0}{1}{2} {3}", prefix, mo.Properties["Title"].Value.ToString(), postfix, additionalTitle);
                }
                // Other
                else
                {
                    row["Title"] = String.Format("<div style='padding-left: 50px;'>{0} {1}</div>", mo.Properties["Title"].Value.ToString(), additionalTitle);
                    row["Rate"]  = String.Format("{0}{1:F2}{2}", prefix, Convert.ToDecimal(mo.Properties["Rate"].Value), postfix);
                }

                row["Total"]         = String.Format("{0}{1:D2}:{2:D2}{3}", prefix, Convert.ToInt32(mo.Properties["DayT"].Value) / 60, Convert.ToInt32(mo.Properties["DayT"].Value) % 60, postfix);
                row["TotalApproved"] = String.Format("{0}{1:D2}:{2:D2}{3}", prefix, Convert.ToInt32(mo.Properties["TotalApproved"].Value) / 60, Convert.ToInt32(mo.Properties["TotalApproved"].Value) % 60, postfix);
                row["Cost"]          = String.Format("{0}{1:F2}{2}", prefix, Convert.ToDecimal(mo.Properties["Cost"].Value), postfix);

                dt.Rows.Add(row);
            }

            // Header Text
            for (int i = 0; i < MainGrid.Columns.Count; i++)
            {
                MetaField field = currentPreferences.GetVisibleMetaField()[i];

                MainGrid.Columns[i].HeaderText = CHelper.GetResFileString(field.FriendlyName);
            }

            MainGrid.DataSource = dt;
            MainGrid.DataBind();
        }
Esempio n. 15
0
        public static Mediachase.Ibn.Core.McMetaViewPreference GetMetaViewPreference(MetaView currentView)
        {
            Mediachase.Ibn.Core.McMetaViewPreference preference = Mediachase.Ibn.Core.UserMetaViewPreference.Load(currentView, Mediachase.IBN.Business.Security.CurrentUser.UserID);

            if (preference == null || preference.Attributes.Count == 0)
            {
                //CreateDefaultUserPreference(CurrentView);
                McMetaViewPreference.CreateDefaultUserPreference(currentView);
                preference = Mediachase.Ibn.Core.UserMetaViewPreference.Load(currentView, Mediachase.IBN.Business.Security.CurrentUser.UserID);
            }

            return preference;
        }
Esempio n. 16
0
        public static List<MetaField> GetAllMetaFields(MetaView View)
        {
            List<MetaField> retVal = new List<MetaField>();
            foreach (MetaField field in View.MetaClass.Fields)
            {
                retVal.Add(field);
            }

            if (View.Card != null)
            {
                MetaClass mcCard = MetaDataWrapper.GetMetaClassByName(View.Card.Name);
                foreach (MetaField field in mcCard.Fields)
                {
                    if (CHelper.CheckCardField(View.MetaClass, field))
                        retVal.Add(field);
                }
            }

            return retVal;
        }
Esempio n. 17
0
        public ActionResult Edit(Guid id, MetaViewModel model, List <MetaViewColumnModel> columns, string button)
        {
            using (DBEntities context = Settings.CreateDataContext())
            {
                Validate(context, model);

                if (!ModelState.IsValid)
                {
                    return(View(model));
                }

                MetaView target = null;
                if (model.Id != Guid.Empty)
                {
                    target = MetaViewHelper.Get(model.Id, context);
                    if (target == null)
                    {
                        ModelState.AddModelError("", Resources.Resource.RowNotFound);
                        return(View(model));
                    }
                }
                else
                {
                    target = new MetaView {
                        Id = Guid.NewGuid()
                    };
                    context.AddToMetaView(target);
                }

                MetaViewModel.CreateMap();

                Mapper.Map(model, target);
                if (columns != null)
                {
                    SyncViewColumns(target, columns, context);
                }

                try
                {
                    context.SaveChanges();
                }
                catch (Exception ex)
                {
                    var sb = new StringBuilder(Resources.Resource.SaveError + ": " + ex.Message);
                    if (ex.InnerException != null)
                    {
                        sb.AppendLine(ex.InnerException.Message);
                    }
                    ModelState.AddModelError("", sb.ToString());
                    return(View(model));
                }

                if (button == "SaveAndExit")
                {
                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(RedirectToAction("Edit", new { target.Id }));
                }
            }
        }
Esempio n. 18
0
 /// <summary>
 /// The add metas to tree view.
 /// </summary>
 /// <param name="map">The map.</param>
 /// <param name="tv">The tv.</param>
 /// <param name="mv">The mv.</param>
 /// <param name="checkbox">The checkbox.</param>
 /// <remarks></remarks>
 public void AddMetasToTreeView(Map map, TreeView tv, MetaView mv, bool checkbox)
 {
     switch (mv)
     {
         case MetaView.TagTypeView:
             AddMetaByTagTypeToTreeView(ref map, ref tv, false);
             break;
         case MetaView.FolderView:
             AddMetaByFolderToTreeView(ref map, ref tv, checkbox);
             break;
         case MetaView.InfoView:
             AddMetaByInfoToTreeView(ref map, ref tv, checkbox);
             break;
     }
 }
Esempio n. 19
0
        private void SyncViewColumns(MetaView target, List <MetaViewColumnModel> columnModel, DBEntities context)
        {
            MetaViewColumnModel.CreateMap();
            var viewColumns = context.MetaViewColumn.Include("Attribute").Where(c => c.MetaViewId == target.Id).ToList();

            foreach (var item in columnModel)
            {
                item.NeedSave = NeedSave(item, columnModel);
            }

            foreach (var item in columnModel)
            {
                item.NeedSave = NeedSaveSpecial(item, columnModel);
            }

            foreach (var item in columnModel)
            {
                MetaViewColumnModel item1 = item;
                var viewColumn            = viewColumns.FirstOrDefault(c => c.Id == item1.Id);
                if (viewColumn == null)
                {
                    if (!item.NeedSave)
                    {
                        continue;
                    }

                    viewColumn = new MetaViewColumn()
                    {
                        Id = item.Id
                    };
                    Mapper.Map(item, viewColumn);
                    viewColumn.MetaViewId = target.Id;
                    context.MetaViewColumn.AddObject(viewColumn);
                }
                else
                {
                    if (item.NeedSave)
                    {
                        Mapper.Map(item, viewColumn);
                        viewColumn.MetaViewId = target.Id;
                    }
                    else
                    {
                        context.MetaViewColumn.DeleteObject(viewColumn);
                    }
                }
            }

            for (int i = 0; i < viewColumns.Count; i++)
            {
                var viewColumn = viewColumns[i];
                var item       = columnModel.FirstOrDefault(c => c.Id == viewColumn.Id);
                if (item == null)
                {
                    context.MetaViewColumn.DeleteObject(viewColumns[i]);
                    viewColumns.RemoveAt(i);
                    i--;
                }
                else if (viewColumn.ParentId == null && viewColumn.Attribute.EntityId != target.MasterEntityId)
                {
                    DeleteViewColoumnAndChilds(context, viewColumns, viewColumn);
                    i = -1;
                }
                else if (viewColumn.ParentId != null && viewColumn.Attribute != null)
                {
                    var parent = viewColumns.FirstOrDefault(c => c.Id == viewColumn.ParentId);
                    if (parent != null && parent.Attribute.TypeId == (byte)AttributeType.Reference)
                    {
                        if (parent.Attribute.ReferencedEntityId != viewColumn.Attribute.EntityId)
                        {
                            DeleteViewColoumnAndChilds(context, viewColumns, viewColumn);
                            i = -1;
                        }
                    }
                }
            }
        }
Esempio n. 20
0
        private void SyncViewColumns(MetaView target, List<MetaViewColumnModel> columnModel, DBEntities context)
        {
            MetaViewColumnModel.CreateMap();
            var viewColumns = context.MetaViewColumn.Include("Attribute").Where(c => c.MetaViewId == target.Id).ToList();

            foreach (var item in columnModel)
            {
                item.NeedSave = NeedSave(item, columnModel);
            }

            foreach (var item in columnModel)
            {
                item.NeedSave = NeedSaveSpecial(item, columnModel);
            }

            foreach (var item in columnModel)
            {
                MetaViewColumnModel item1 = item;
                var viewColumn = viewColumns.FirstOrDefault(c => c.Id == item1.Id);
                if (viewColumn == null)
                {
                    if (!item.NeedSave)
                        continue;

                    viewColumn = new MetaViewColumn()
                                     {
                                         Id = item.Id
                                     };
                    Mapper.Map(item, viewColumn);
                    viewColumn.MetaViewId = target.Id;
                    context.MetaViewColumn.AddObject(viewColumn);

                }
                else
                {
                    if (item.NeedSave)
                    {
                        Mapper.Map(item, viewColumn);
                        viewColumn.MetaViewId = target.Id;
                    }
                    else
                    {
                        context.MetaViewColumn.DeleteObject(viewColumn);
                    }
                }
            }

            for (int i = 0; i < viewColumns.Count; i++)
            {
                var viewColumn = viewColumns[i];
                var item = columnModel.FirstOrDefault(c => c.Id == viewColumn.Id);
                if (item == null)
                {
                    context.MetaViewColumn.DeleteObject(viewColumns[i]);
                    viewColumns.RemoveAt(i);
                    i--;
                }
                else if (viewColumn.ParentId == null && viewColumn.Attribute.EntityId != target.MasterEntityId)
                {
                    DeleteViewColoumnAndChilds(context, viewColumns, viewColumn);
                    i = -1;
                }
                else if  (viewColumn.ParentId != null && viewColumn.Attribute != null)
                {
                    var parent = viewColumns.FirstOrDefault(c => c.Id == viewColumn.ParentId);
                    if (parent != null && parent.Attribute.TypeId == (byte)AttributeType.Reference)
                    {
                        if (parent.Attribute.ReferencedEntityId != viewColumn.Attribute.EntityId)
                        {
                            DeleteViewColoumnAndChilds(context, viewColumns, viewColumn);
                            i = -1;
                        }
                    }
                }
            }
        }
Esempio n. 21
0
        private MetaView GetMetaView()
        {
            MetaView currentView = new MetaView(TimeTrackingEntry.GetAssignedMetaClass(), "FinanceProjectReport", string.Empty);
            foreach (MetaField mf in currentView.MetaClass.Fields)
            {
                currentView.AvailableFields.Add(mf);
            }

            // Total
            currentView.TotalGroupBy = new GroupByElement();
            currentView.TotalGroupBy.IsPreGroupObjectVisible = false;
            currentView.TotalGroupBy.IsPostGroupObjectVisible = true;

            currentView.TotalGroupBy.PostGroupObjectFields.Add(new GroupByObjectField("Title", ValueSourceType.Custom, CHelper.GetResFileString("{IbnFramework.Global:_mc_Total}")));
            currentView.TotalGroupBy.PostGroupObjectFields.Add(new GroupByObjectField("DayT", ValueSourceType.Function, GroupByObjectField.SumFunction));
            currentView.TotalGroupBy.PostGroupObjectFields.Add(new GroupByObjectField("TotalApproved", ValueSourceType.Function, GroupByObjectField.SumFunction));
            currentView.TotalGroupBy.PostGroupObjectFields.Add(new GroupByObjectField("Cost", ValueSourceType.Function, GroupByObjectField.SumFunction));

            // PrimaryGroupBy, SecondaryGroupBy
            if (GroupingList.SelectedValue == GroupingWeekUser)
            {
                currentView.PrimaryGroupBy = new GroupByElement("StartDate");
                currentView.PrimaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("Title", ValueSourceType.Field, "StartDate", false));
                currentView.SecondaryGroupBy = new GroupByElement("Owner");
                currentView.SecondaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("Title", ValueSourceType.Field, "Owner", false));
            }
            else
            {
                currentView.PrimaryGroupBy = new GroupByElement("Owner");
                currentView.PrimaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("Title", ValueSourceType.Field, "Owner", false));
                currentView.SecondaryGroupBy = new GroupByElement("StartDate");
                currentView.SecondaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("Title", ValueSourceType.Field, "StartDate", false));
            }
            currentView.PrimaryGroupBy.IsPreGroupObjectVisible = true;
            currentView.PrimaryGroupBy.IsPostGroupObjectVisible = false;
            currentView.SecondaryGroupBy.IsPreGroupObjectVisible = true;
            currentView.SecondaryGroupBy.IsPostGroupObjectVisible = false;

            currentView.PrimaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("DayT", ValueSourceType.Function, GroupByObjectField.SumFunction));
            currentView.PrimaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("TotalApproved", ValueSourceType.Function, GroupByObjectField.SumFunction));
            currentView.PrimaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("Cost", ValueSourceType.Function, GroupByObjectField.SumFunction));
            currentView.PrimaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("ParentBlockId", ValueSourceType.Field, "ParentBlockId"));

            currentView.SecondaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("DayT", ValueSourceType.Function, GroupByObjectField.SumFunction));
            currentView.SecondaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("TotalApproved", ValueSourceType.Function, GroupByObjectField.SumFunction));
            currentView.SecondaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("Cost", ValueSourceType.Function, GroupByObjectField.SumFunction));
            currentView.SecondaryGroupBy.PreGroupObjectFields.Add(new GroupByObjectField("ParentBlockId", ValueSourceType.Field, "ParentBlockId"));

            return currentView;
        }
Esempio n. 22
0
        private McMetaViewPreference CreateDefaultReportPreferenceTimeTracking(MetaView View)
        {
            McMetaViewPreference pref = new McMetaViewPreference();
            pref.MetaView = View;

            pref.ShowAllMetaField();

            foreach (MetaField field in pref.GetVisibleMetaField())
            {
                if (field.Name != "Title" && field.Name != "TotalApproved" && field.Name != "Rate" && field.Name != "Cost" && field.Name != "DayT")
                {
                    pref.HideMetaField(field.Name);
                }
                else
                {
                    if (field.Name == "Title")
                    {
                        pref.SetAttribute<int>(field.Name, McMetaViewPreference.AttrIndex, 0);
                    }
                    else if (field.Name == "DayT")
                    {
                        pref.SetAttribute<int>(field.Name, McMetaViewPreference.AttrIndex, 1);
                    }
                    else if (field.Name == "TotalApproved")
                    {
                        pref.SetAttribute<int>(field.Name, McMetaViewPreference.AttrIndex, 2);
                    }
                    else if (field.Name == "Rate")
                    {
                        pref.SetAttribute<int>(field.Name, McMetaViewPreference.AttrIndex, 3);
                    }
                    else
                    {
                        pref.SetAttribute<int>(field.Name, McMetaViewPreference.AttrIndex, 4);
                    }
                }
             			}

            pref.Attributes.Set("PageSize", -1);

            MetaViewGroupUtil.CollapseAll(MetaViewGroupByType.Secondary, pref);

            return pref;
        }
Esempio n. 23
0
        private void BindGrid()
        {
            DataTable dt = new DataTable();

            dt.Columns.Add(new DataColumn("Title", typeof(string)));
            dt.Columns.Add(new DataColumn("Day1", typeof(string)));
            dt.Columns.Add(new DataColumn("Day2", typeof(string)));
            dt.Columns.Add(new DataColumn("Day3", typeof(string)));
            dt.Columns.Add(new DataColumn("Day4", typeof(string)));
            dt.Columns.Add(new DataColumn("Day5", typeof(string)));
            dt.Columns.Add(new DataColumn("Day6", typeof(string)));
            dt.Columns.Add(new DataColumn("Day7", typeof(string)));
            dt.Columns.Add(new DataColumn("DayT", typeof(string)));
            dt.Columns.Add(new DataColumn("StateFriendlyName", typeof(string)));

            MetaView currentView = GetMetaView();

            currentView.Filters = GetFilters();

            McMetaViewPreference currentPreferences = Mediachase.UI.Web.Util.CommonHelper.CreateDefaultReportPreferenceTimeTracking(currentView);

            MetaObject[] list = null;
            if (String.Compare(Mediachase.IBN.Business.Configuration.Domain, "ibn47.mediachase.net", true) == 0)
            {
                list = currentView.List(currentPreferences, McRoundValues);

                // For Excel
                for (int i = 1; i <= 8; i++)
                {
                    MainGrid.Columns[i].ItemStyle.CssClass = "TdTextClass";
                }
            }
            else
            {
                list = currentView.List(currentPreferences);
            }

            foreach (MetaObject mo in list)
            {
                DataRow row = dt.NewRow();

                string additionalTitle = string.Empty;
                string prefix          = "";
                string postfix         = "";

                if (cbShowWeekNumber.Checked && mo.Properties["MetaViewGroupByType"] != null && mo.Properties["MetaViewGroupByType"].OriginalValue.ToString() != MetaViewGroupByType.Total.ToString())
                {
                    DateTime dtNew = DateTime.MinValue;

                    try
                    {
                        dtNew = (DateTime)mo.Properties["Title"].Value;
                    }
                    catch
                    {
                    }

                    if (dtNew != DateTime.MinValue)
                    {
                        additionalTitle = string.Format("(#{0})", Iso8601WeekNumber.GetWeekNumber((DateTime)mo.Properties["Title"].Value));
                    }
                }

                if (mo.Properties["MetaViewGroupByType"] != null && mo.Properties["MetaViewGroupByType"].OriginalValue.ToString() == MetaViewGroupByType.Primary.ToString())
                {
                    prefix  = "<b>";
                    postfix = "</b>";
                    if (GroupingList.SelectedValue == GroupingWeekUser)
                    {
                        row["Title"] = String.Format("{0}{1} - {2}{3} {4}", prefix, ((DateTime)mo.Properties["Title"].Value).ToString("d MMM yyyy"), ((DateTime)mo.Properties["Title"].Value).AddDays(6).ToString("d MMM yyyy"), prefix, additionalTitle);
                    }
                    else
                    {
                        row["Title"] = String.Format("{0}{1}{2} {3}", prefix, mo.Properties["Title"].Value.ToString(), postfix, additionalTitle);
                    }
                }
                else if (mo.Properties["MetaViewGroupByType"] != null && mo.Properties["MetaViewGroupByType"].OriginalValue.ToString() == MetaViewGroupByType.Secondary.ToString())
                {
                    prefix  = "<b>";
                    postfix = "</b>";
                    if (GroupingList.SelectedValue == GroupingUserWeek)
                    {
                        row["Title"] = String.Format("<div style='padding-left: 25px;'>{0}{1} - {2}{3} {4}</div>", prefix, ((DateTime)mo.Properties["Title"].Value).ToString("d MMM yyyy"), ((DateTime)mo.Properties["Title"].Value).AddDays(6).ToString("d MMM yyyy"), prefix, additionalTitle);
                    }
                    else
                    {
                        row["Title"] = String.Format("<div style='padding-left: 25px;'>{0}{1}{2} {3}</div>", prefix, mo.Properties["Title"].Value.ToString(), postfix, additionalTitle);
                    }
                }
                else if (mo.Properties["MetaViewGroupByType"] != null && mo.Properties["MetaViewGroupByType"].OriginalValue.ToString() == MetaViewGroupByType.Total.ToString())
                {
                    prefix       = "<b>";
                    postfix      = "</b>";
                    row["Title"] = String.Format("{0}{1}{2} {3}", prefix, mo.Properties["Title"].Value.ToString(), postfix, additionalTitle);
                }
                else
                {
                    row["Title"] = String.Format("<div style='padding-left: 50px;'>{0} {1}</div>", mo.Properties["Title"].Value.ToString(), additionalTitle);
                }

                if (String.Compare(Mediachase.IBN.Business.Configuration.Domain, "ibn47.mediachase.net", true) == 0)
                {
                    if (mo.Properties["MetaViewGroupByType"] == null || (mo.Properties["MetaViewGroupByType"] != null && mo.Properties["MetaViewGroupByType"].OriginalValue.ToString() == MetaViewGroupByType.Total.ToString()) || (mo.Properties["MetaViewGroupByType"] != null && mo.Properties["MetaViewGroupByType"].OriginalValue.ToString() == MetaViewGroupByType.Secondary.ToString()))
                    {
                        row["Day1"] = String.Format("{0}{1:F2}{2}", prefix, Convert.ToInt32(mo.Properties["Day1"].Value) / 60.0, postfix);
                        row["Day2"] = String.Format("{0}{1:F2}{2}", prefix, Convert.ToInt32(mo.Properties["Day2"].Value) / 60.0, postfix);
                        row["Day3"] = String.Format("{0}{1:F2}{2}", prefix, Convert.ToInt32(mo.Properties["Day3"].Value) / 60.0, postfix);
                        row["Day4"] = String.Format("{0}{1:F2}{2}", prefix, Convert.ToInt32(mo.Properties["Day4"].Value) / 60.0, postfix);
                        row["Day5"] = String.Format("{0}{1:F2}{2}", prefix, Convert.ToInt32(mo.Properties["Day5"].Value) / 60.0, postfix);
                        row["Day6"] = String.Format("{0}{1:F2}{2}", prefix, Convert.ToInt32(mo.Properties["Day6"].Value) / 60.0, postfix);
                        row["Day7"] = String.Format("{0}{1:F2}{2}", prefix, Convert.ToInt32(mo.Properties["Day7"].Value) / 60.0, postfix);
                        row["DayT"] = String.Format("{0}{1:F2}{2}", prefix, Convert.ToInt32(mo.Properties["DayT"].Value) / 60.0, postfix);
                    }
                }
                else
                {
                    row["Day1"] = String.Format("{0}{1:D2}:{2:D2}{3}", prefix, Convert.ToInt32(mo.Properties["Day1"].Value) / 60, Convert.ToInt32(mo.Properties["Day1"].Value) % 60, postfix);
                    row["Day2"] = String.Format("{0}{1:D2}:{2:D2}{3}", prefix, Convert.ToInt32(mo.Properties["Day2"].Value) / 60, Convert.ToInt32(mo.Properties["Day2"].Value) % 60, postfix);
                    row["Day3"] = String.Format("{0}{1:D2}:{2:D2}{3}", prefix, Convert.ToInt32(mo.Properties["Day3"].Value) / 60, Convert.ToInt32(mo.Properties["Day3"].Value) % 60, postfix);
                    row["Day4"] = String.Format("{0}{1:D2}:{2:D2}{3}", prefix, Convert.ToInt32(mo.Properties["Day4"].Value) / 60, Convert.ToInt32(mo.Properties["Day4"].Value) % 60, postfix);
                    row["Day5"] = String.Format("{0}{1:D2}:{2:D2}{3}", prefix, Convert.ToInt32(mo.Properties["Day5"].Value) / 60, Convert.ToInt32(mo.Properties["Day5"].Value) % 60, postfix);
                    row["Day6"] = String.Format("{0}{1:D2}:{2:D2}{3}", prefix, Convert.ToInt32(mo.Properties["Day6"].Value) / 60, Convert.ToInt32(mo.Properties["Day6"].Value) % 60, postfix);
                    row["Day7"] = String.Format("{0}{1:D2}:{2:D2}{3}", prefix, Convert.ToInt32(mo.Properties["Day7"].Value) / 60, Convert.ToInt32(mo.Properties["Day7"].Value) % 60, postfix);
                    row["DayT"] = String.Format("{0}{1:D2}:{2:D2}{3}", prefix, Convert.ToInt32(mo.Properties["DayT"].Value) / 60, Convert.ToInt32(mo.Properties["DayT"].Value) % 60, postfix);
                }

                if (mo.Properties["StateFriendlyName"].Value != null)
                {
                    row["StateFriendlyName"] = CHelper.GetResFileString(mo.Properties["StateFriendlyName"].Value.ToString());
                }
                else
                {
                    row["StateFriendlyName"] = "";
                }

                dt.Rows.Add(row);
            }

            // Header Text
            for (int i = 0; i < MainGrid.Columns.Count; i++)
            {
                MetaField field     = currentPreferences.GetVisibleMetaField()[i];
                string    fieldName = field.Name;

                // First day of week can be different, so we should specify it.
                if (fieldName == "Day1" || fieldName == "Day2" || fieldName == "Day3" || fieldName == "Day4" || fieldName == "Day5" || fieldName == "Day6" || fieldName == "Day7")
                {
                    DateTime curDate = CHelper.GetRealWeekStartByDate(DateTime.UtcNow);
                    if (fieldName == "Day2")
                    {
                        curDate = curDate.AddDays(1);
                    }
                    else if (fieldName == "Day3")
                    {
                        curDate = curDate.AddDays(2);
                    }
                    else if (fieldName == "Day4")
                    {
                        curDate = curDate.AddDays(3);
                    }
                    else if (fieldName == "Day5")
                    {
                        curDate = curDate.AddDays(4);
                    }
                    else if (fieldName == "Day6")
                    {
                        curDate = curDate.AddDays(5);
                    }
                    else if (fieldName == "Day7")
                    {
                        curDate = curDate.AddDays(6);
                    }

                    MainGrid.Columns[i].HeaderText = GetGlobalResourceObject("IbnFramework.TimeTracking", curDate.DayOfWeek.ToString()).ToString();
                }
                else
                {
                    MainGrid.Columns[i].HeaderText = CHelper.GetResFileString(field.FriendlyName);
                }
            }

            MainGrid.DataSource = dt;
            MainGrid.DataBind();
        }
Esempio n. 24
0
        /// <summary>
        /// Handles the ServerClick event of the SaveButton control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        protected void SaveButton_ServerClick(object sender, EventArgs e)
        {
            if (FormatList.Items.Count < 0)
            {
                throw new Exception("Format is not specified");
            }

            Page.Validate();
            if (!Page.IsValid)
            {
                return;
            }

            Mediachase.Ibn.Data.Meta.Management.AttributeCollection attr = new Mediachase.Ibn.Data.Meta.Management.AttributeCollection();
            string sDefaultValue = String.Empty;

            IManageControl control = MainPlaceHolder.Controls[0] as IManageControl;

            if (control != null)
            {
                sDefaultValue = control.GetDefaultValue(AllowNullsCheckBox.Checked);
                attr          = control.FieldAttributes;
            }

            if (!AllowNullsCheckBox.Checked && sDefaultValue == String.Empty)
            {
                ErrorMessage.Text = GetGlobalResourceObject("GlobalMetaInfo", "ErrorMessage_AllowNulls").ToString();
                return;
            }

            if (sDefaultValue == null)
            {
                sDefaultValue = String.Empty;
            }

            string sFriendlyName = FriendlyNameTextBox.Text.Trim();

            if (mf == null)
            {
                string sName;
                if (!AutogenerateSystemNames)
                {
                    sName = NameTextBox.Text.Trim();
                }
                else
                {
                    // Generate the field name as the number of seconds elapsed since 2000-01-01
                    sName = String.Format(CultureInfo.InvariantCulture, "Field{0}", CHelper.GetDateDiffInSeconds(DateTime.UtcNow, new DateTime(2000, 1, 1)));
                }

                try
                {
                    string typeName = FormatList.SelectedValue;
                    //NewEnum
                    if (attr.ContainsKey("NewEnum"))
                    {
                        string    name         = attr["EnumName"].ToString();
                        string    friendlyname = attr["EnumFriendlyName"].ToString();
                        bool      isPrivate    = (bool)attr["EnumPrivate"];
                        DataTable dt           = (DataTable)attr["EnumDataSource"];

                        attr.Remove("NewEnum");
                        attr.Remove("EnumName");
                        attr.Remove("EnumFriendlyName");
                        attr.Remove("EnumPrivate");
                        attr.Remove("EnumDataSource");

                        MetaFieldType type = MetaEnum.Create(name, friendlyname, false);
                        if (isPrivate)
                        {
                            type.Attributes.Add(McDataTypeAttribute.EnumPrivate, mc.Name);
                        }

                        SortedList sl = new SortedList();
                        foreach (DataRow dr in dt.Rows)
                        {
                            sl.Add((int)dr["OrderId"], dr["Name"].ToString().Trim());
                        }

                        foreach (int i in sl.Keys)
                        {
                            MetaEnum.AddItem(type, sl[i].ToString(), i);
                        }

                        typeName = type.Name;
                    }
                    //NewMultiEnum
                    if (attr.ContainsKey("NewMultiEnum"))
                    {
                        string    name         = attr["EnumName"].ToString();
                        string    friendlyname = attr["EnumFriendlyName"].ToString();
                        bool      isPrivate    = (bool)attr["EnumPrivate"];
                        DataTable dt           = (DataTable)attr["EnumDataSource"];

                        attr.Remove("NewMultiEnum");
                        attr.Remove("EnumName");
                        attr.Remove("EnumFriendlyName");
                        attr.Remove("EnumPrivate");
                        attr.Remove("EnumDataSource");

                        MetaFieldType type = MetaEnum.Create(name, friendlyname, true);
                        if (isPrivate)
                        {
                            type.Attributes.Add(McDataTypeAttribute.EnumPrivate, mc.Name);
                        }

                        SortedList sl = new SortedList();
                        foreach (DataRow dr in dt.Rows)
                        {
                            sl.Add((int)dr["OrderId"], dr["Name"].ToString().Trim());
                        }

                        foreach (int i in sl.Keys)
                        {
                            MetaEnum.AddItem(type, sl[i].ToString(), i);
                        }

                        typeName = type.Name;
                    }

                    MetaFieldType mft = DataContext.Current.MetaModel.RegisteredTypes[FormatList.SelectedValue];
                    if (mft != null && mft.McDataType == McDataType.Enum &&
                        attr.ContainsKey("EnumFriendlyName"))
                    {
                        mft.FriendlyName = attr["EnumFriendlyName"].ToString();
                        attr.Remove("EnumFriendlyName");
                    }

                    MetaField newField = null;
                    if (FieldTypeList.SelectedValue == McDataType.Reference.ToString())
                    {
                        newField = MetaDataWrapper.CreateReference(mc, attr, sName, sFriendlyName, AllowNullsCheckBox.Checked);
                        if (attr.ContainsKey(McDataTypeAttribute.ReferenceUseSecurity))
                        {
                            Mediachase.Ibn.Data.Services.Security.AddObjectRolesFromReference(newField);
                        }
                    }
                    else if (FieldTypeList.SelectedValue == McDataType.ReferencedField.ToString())
                    {
                        newField = MetaDataWrapper.CreateReferencedField(mc, attr, sName, sFriendlyName);
                    }
                    else if (FieldTypeList.SelectedValue == McDataType.BackReference.ToString())
                    {
                        newField = MetaDataWrapper.CreateBackReference(mc, attr, sName, sFriendlyName);
                    }
                    else
                    {
                        newField = MetaDataWrapper.CreateMetaField(mc, attr, sName, sFriendlyName, typeName, AllowNullsCheckBox.Checked, sDefaultValue);
                    }

                    //add to the forms
                    if (newField != null)
                    {
                        List <FormDocument> metaForms = mfs.MetaForms;
                        foreach (FormDocument fd in metaForms)
                        {
                            if (HistoryManager.MetaClassIsHistory(fd.MetaClassName) && !HistoryManager.IsSupportedField(fd.MetaClassName, newField.Name))
                            {
                                continue;
                            }
                            FormController.AddMetaPrimitive(fd.MetaClassName, fd.Name, newField.Name);
                        }

                        using (MetaClassManagerEditScope editScope = DataContext.Current.MetaModel.BeginEdit())
                        {
                            List <string> metaViews = mfs.MetaViews;
                            foreach (string viewName in metaViews)
                            {
                                MetaView metaView = DataContext.Current.MetaModel.MetaViews[viewName];
                                if (HistoryManager.MetaClassIsHistory(metaView.MetaClassName) && !HistoryManager.IsSupportedField(metaView.MetaClassName, newField.Name))
                                {
                                    continue;
                                }
                                McMetaViewPreference pref = UserMetaViewPreference.Load(metaView, (int)DataContext.Current.CurrentUserId);
                                if (pref == null || pref.Attributes.Count == 0)
                                {
                                    McMetaViewPreference.CreateDefaultUserPreference(metaView);
                                    pref = UserMetaViewPreference.Load(metaView, (int)DataContext.Current.CurrentUserId);
                                }
                                int counter = metaView.AvailableFields.Count;
                                metaView.AvailableFields.Add(metaView.MetaClass.Fields[newField.Name]);
                                pref.SetAttribute <int>(newField.Name, McMetaViewPreference.AttrIndex, counter);
                                pref.SetAttribute <int>(newField.Name, McMetaViewPreference.AttrWidth, 100);
                            }

                            editScope.SaveChanges();
                        }
                    }

                    Response.Redirect(String.Format("{0}?class={1}", ReturnUrl, mc.Name), true);
                }
                catch (MetaFieldAlreadyExistsException)
                {
                    ErrorLabel.Text    = String.Format(GetGlobalResourceObject("GlobalMetaInfo", "FieldExistsErrorMessage").ToString(), "'" + sName + "'");
                    ErrorLabel.Visible = true;
                }

                /*              catch (SqlException sqlException)
                 *                              {
                 *                                      if (sqlException.Number == 1505)	// Duplication key
                 *                                              ErrorLabel.Text = ex.Message;
                 *                                      else
                 *                                              ErrorLabel.Text = ex.Message;
                 *                                      ErrorLabel.Visible = true;
                 *                              }
                 */
            }
            else             // Update
            {
                MetaFieldType mft = DataContext.Current.MetaModel.RegisteredTypes[FormatList.SelectedValue];
                if (mft.McDataType == McDataType.Enum && attr.ContainsKey("EnumFriendlyName"))
                {
                    mft.FriendlyName = attr["EnumFriendlyName"].ToString();
                    attr.Remove("EnumFriendlyName");
                }

                if (FieldTypeList.SelectedValue == McDataType.Reference.ToString() ||
                    FieldTypeList.SelectedValue == McDataType.BackReference.ToString() ||
                    FieldTypeList.SelectedValue == McDataType.ReferencedField.ToString())
                {
                    MetaDataWrapper.UpdateMetaFieldFriendlyName(mf, sFriendlyName);
                }
                else
                {
                    MetaDataWrapper.UpdateMetaField(mf, attr, sFriendlyName, sDefaultValue);
                }

                Response.Redirect(String.Format("{0}?class={1}", ReturnUrl, mc.Name), true);
            }
        }
Esempio n. 25
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request["ViewName"] != null)
            {
                MetaView view       = GetViewByName(Request["ViewName"]);
                string   ActionName = Request["Action"];

                //TODO: PrincipalId
                McMetaViewPreference pref = Mediachase.Ibn.Core.UserMetaViewPreference.Load(view, 13 /*Security.CurrentUserId*/);

                switch (ActionName)
                {
                case "ColumnResize":
                {
                    pref.SetMetaFieldWidth(Convert.ToInt32(Request["columnIndex"]), Convert.ToInt32(Request["newSize"]));
                    break;
                }

                case "OrderChange":
                {
                    pref.ChangeMetaFieldOrder(Convert.ToInt32(Request["oldIndex"]), Convert.ToInt32(Request["newIndex"]));
                    break;
                }

                case "HiddenChange":
                {
                    pref.HideMetaField(Request["columnName"]);
                    break;
                }

                case "EditColumns":
                {
                    pref.ShowAllMetaField();
                    string hiddenColumns = Request["hiddenColumns"];
                    if (hiddenColumns.Length > 0)
                    {
                        foreach (string fieldName in hiddenColumns.Split(','))
                        {
                            pref.HideMetaField(fieldName);
                        }
                    }
                    break;
                }

                case "ResizeLayout":
                {
                    int    newSize  = Convert.ToInt32(Request["newSize"]);
                    string attrName = string.Empty;

                    #region Convert west -> MarginLeft (etc.)
                    switch (Request["RegionId"])
                    {
                    case "west":
                    {
                        attrName = "MarginLeft";
                        break;
                    }

                    case "east":
                    {
                        attrName = "MarginRight";
                        break;
                    }

                    case "north":
                    {
                        attrName = "MarginTop";
                        break;
                    }

                    case "south":
                    {
                        attrName = "MarginBottom";
                        break;
                    }
                    }
                    #endregion

                    pref.Attributes.Set(attrName, newSize);
                    break;
                }
                }

                //TODO: PrincipalId
                Mediachase.Ibn.Core.UserMetaViewPreference.Save(13 /*Security.CurrentUserId*/, pref);
            }

            if (Request["CommandId"] != null)
            {
                Response.Write("Test toolbar action: " + Request["CommandId"]);
            }
        }
Esempio n. 26
0
        //for the bug in catel 4.0
        //new public bool HasErrors
        //{
        //    get
        //    {
        //        return false; // ((INotifyDataErrorInfo)this).HasErrors;|| this.ChildViewModelsHaveErrors;
        //    }
        //}

        // TODO: Register models with the vmpropmodel codesnippet
        // TODO: Register view model properties with the vmprop or vmpropviewmodeltomodel codesnippets
        #endregion

        #region Commands
        // TODO: Register commands with the vmcommand or vmcommandwithcanexecute codesnippets
        #endregion

        #region Methods
        /// <summary>
        /// only called when View is derived from MetaView
        /// </summary>
        /// <param name="view"></param>
        internal protected virtual void OnViewLoaded(MetaView view)
        {
        }
Esempio n. 27
0
        public ActionResult Edit(Guid id, MetaViewModel model, List<MetaViewColumnModel> columns, string button)
        {
            using (DBEntities context = Settings.CreateDataContext())
            {
                Validate(context, model);

                if (!ModelState.IsValid)
                {
                    return View(model);
                }

                MetaView target = null;
                if (model.Id != Guid.Empty)
                {
                    target = MetaViewHelper.Get(model.Id, context);
                    if (target == null)
                    {
                        ModelState.AddModelError("", Resources.Resource.RowNotFound);
                        return View(model);
                    }
                }
                else
                {
                    target = new MetaView {Id = Guid.NewGuid()};
                    context.AddToMetaView(target);
                }

                MetaViewModel.CreateMap();

                Mapper.Map(model, target);
                if(columns != null)
                    SyncViewColumns(target, columns, context);

                try
                {
                    context.SaveChanges();
                }
                catch (Exception ex)
                {
                    var sb = new StringBuilder(Resources.Resource.SaveError + ": " + ex.Message);
                    if (ex.InnerException != null)
                        sb.AppendLine(ex.InnerException.Message);
                    ModelState.AddModelError("", sb.ToString());
                    return View(model);
                }

                if (button == "SaveAndExit")
                    return RedirectToAction("Index");
                else
                    return RedirectToAction("Edit", new {target.Id});
            }
        }