public EntityObjectHierarchy Serialize<T>() { CalendarEventResourceEntity retVal = new CalendarEventResourceEntity(); McCalAddress mcCalAddress = Resource as McCalAddress; if (mcCalAddress != null) { retVal.PrimaryKeyId = mcCalAddress.MetaObjectId; } //Copy Cal_Address parameters to entity object foreach (string paramName in Resource.Parameters.Keys) { iCal2EntityMapping.MappingResult mapRes = iCal2EntityMapping.iCalProp2EntityProp<T>(paramName); if (mapRes != null && Resource.Parameters.ContainsKey(paramName)) { foreach (string paramValue in ((Parameter)Resource.Parameters[paramName]).Values) { retVal[mapRes.Name] = EntityPropConverter.ToEntityProperty(mapRes.ValueType, paramValue); } } } retVal.Email = Resource.EmailAddress; return new EntityObjectHierarchy(retVal); }
public override void DataBind() { if (DataItem != null) { CalendarEventEntity ceo = (CalendarEventEntity)DataItem; FilterElementCollection fec = new FilterElementCollection(); FilterElement fe = FilterElement.EqualElement("EventId", ((VirtualEventId)ceo.PrimaryKeyId).RealEventId); fec.Add(fe); fe = FilterElement.EqualElement("PrincipalId", Mediachase.IBN.Business.Security.CurrentUser.UserID); fec.Add(fe); EntityObject[] list = BusinessManager.List(CalendarEventResourceEntity.ClassName, fec.ToArray()); if (list.Length > 0) { CalendarEventResourceEntity cero = (CalendarEventResourceEntity)list[0]; _resId = cero.PrimaryKeyId.Value; if (cero.Status.HasValue) { if (cero.Status.Value == (int)eResourceStatus.Accepted) { btnAccept.Disabled = true; } if (cero.Status.Value == (int)eResourceStatus.Tentative) { btnTentative.Disabled = true; } if (cero.Status.Value == (int)eResourceStatus.Declined) { btnDecline.Disabled = true; } } } } base.DataBind(); }
private static EntityObject CreateEntityObject(SyncTransferData transferData) { EntityObject retVal = null; string entityName; if (_transfer2entity.TryGetValue(transferData.SyncDataName, out entityName)) { switch (entityName) { case CalendarEventEntity.ClassName: retVal = new CalendarEventEntity(); break; case CalendarEventRecurrenceEntity.ClassName: retVal = new CalendarEventRecurrenceEntity(); break; case CalendarEventResourceEntity.ClassName: retVal = new CalendarEventResourceEntity(); break; } if (retVal != null) { CopyProperies(transferData, retVal); } } return(retVal); }
protected void btnSave_ServerClick(object sender, EventArgs e) { DataTable dt = ((DataTable)ViewState["Resources"]).Copy(); List <CalendarEventResourceEntity> list = new List <CalendarEventResourceEntity>(); foreach (DataRow dr in dt.Rows) { CalendarEventResourceEntity cero = BusinessManager.InitializeEntity <CalendarEventResourceEntity>(CalendarEventResourceEntity.ClassName); string[] elem = dr["Id"].ToString().Split(new string[] { "::" }, StringSplitOptions.RemoveEmptyEntries); if (elem[1] != "0") { MetaClass mcEl = MetaDataWrapper.GetMetaClassByName(elem[1]); if (mcEl.IsCard) { elem[1] = mcEl.CardOwner.Name; } } if (elem[1] == "0") { cero.Email = elem[0]; } else if (elem[1] == Principal.GetAssignedMetaClass().Name) { cero.PrincipalId = PrimaryKeyId.Parse(elem[0]); } else if (elem[1] == ContactEntity.GetAssignedMetaClassName()) { cero.ContactId = PrimaryKeyId.Parse(elem[0]); } else if (elem[1] == OrganizationEntity.GetAssignedMetaClassName()) { cero.OrganizationId = PrimaryKeyId.Parse(elem[0]); } cero.Name = dr["Name"].ToString(); cero.Status = (int)eResourceStatus.NotResponded; list.Add(cero); } CalendarEventEntity ceo = (CalendarEventEntity)BusinessManager.Load(CalendarEventEntity.ClassName, _workObjectId); CalendarEventUpdateResourcesRequest req = new CalendarEventUpdateResourcesRequest(ceo, list.ToArray()); BusinessManager.Execute(req); if (Request["CommandName"] != null) { CommandParameters cp = new CommandParameters(Request["CommandName"]); Mediachase.Ibn.Web.UI.WebControls.CommandHandler.RegisterCloseOpenedFrameScript(this.Page, cp.ToString()); } else { Mediachase.Ibn.Web.UI.WebControls.CommandHandler.RegisterCloseOpenedFrameScript(this.Page, String.Empty); } }
/// <summary> /// Creates the entity object. /// </summary> /// <param name="metaClassName">Name of the meta class.</param> /// <param name="primaryKeyId">The primary key id.</param> /// <returns></returns> protected override EntityObject CreateEntityObject(string metaClassName, PrimaryKeyId? primaryKeyId) { if (metaClassName == CalendarEventResourceEntity.ClassName) { CalendarEventResourceEntity retVal = new CalendarEventResourceEntity(); retVal.PrimaryKeyId = primaryKeyId; return retVal; } return base.CreateEntityObject(metaClassName, primaryKeyId); }
/// <summary> /// Creates the entity object. /// </summary> /// <param name="metaClassName">Name of the meta class.</param> /// <param name="primaryKeyId">The primary key id.</param> /// <returns></returns> protected override EntityObject CreateEntityObject(string metaClassName, PrimaryKeyId?primaryKeyId) { if (metaClassName == CalendarEventResourceEntity.ClassName) { CalendarEventResourceEntity retVal = new CalendarEventResourceEntity(); retVal.PrimaryKeyId = primaryKeyId; return(retVal); } return(base.CreateEntityObject(metaClassName, primaryKeyId)); }
private void CommonPartStatusUpdate(eResourceStatus status) { CalendarEventResourceEntity cero = BusinessManager.Load(CalendarEventResourceEntity.ClassName, _resId) as CalendarEventResourceEntity; if (cero != null) { Mediachase.Ibn.Events.Request.ChangeTrackingRequest req = new Mediachase.Ibn.Events.Request.ChangeTrackingRequest(cero); req.Status = status; BusinessManager.Execute(req); CHelper.RequireDataBind(); } }
protected override void PreUpdate(BusinessContext context) { CalendarEventResourceEntity resourceEntity = context.Request.Target as CalendarEventResourceEntity; UpdateRequest updateRequest = context.Request as UpdateRequest; bool forceBase = updateRequest.Parameters.GetValue <bool>(EventHelper.FORCE_BASE_PARAM, false); if (!forceBase) { PrimaryKeyId pk = Mediachase.Ibn.Events.CustomMethods.EventHelper.PrepareUpdateResourceRequest(updateRequest); context.Request.Target.PrimaryKeyId = pk; } base.PreUpdate(context); }
private void GetObjectData() { FilterElementCollection fec = new FilterElementCollection(); FilterElement fe = FilterElement.EqualElement("EventId", _workObjectId); fec.Add(fe); EntityObject[] list = BusinessManager.List(CalendarEventResourceEntity.ClassName, fec.ToArray()); DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("Id", typeof(string))); dt.Columns.Add(new DataColumn("Name", typeof(string))); DataRow dr; foreach (EntityObject eo in list) { dr = dt.NewRow(); CalendarEventResourceEntity cero = (CalendarEventResourceEntity)eo; if (cero.ContactId.HasValue) { dr["Id"] = String.Format("{0}::{1}", cero.ContactId.Value.ToString(), ContactEntity.GetAssignedMetaClassName()); dr["Name"] = cero.Contact; } else if (cero.OrganizationId.HasValue) { dr["Id"] = String.Format("{0}::{1}", cero.OrganizationId.Value.ToString(), OrganizationEntity.GetAssignedMetaClassName()); dr["Name"] = cero.Organization; } else if (cero.PrincipalId.HasValue) { dr["Id"] = String.Format("{0}::{1}", cero.PrincipalId.Value.ToString(), Principal.GetAssignedMetaClass().Name); dr["Name"] = cero.Principal; } else { dr["Id"] = String.Format("{0}::0", cero.Email); dr["Name"] = cero.Email; } dt.Rows.Add(dr); } ViewState["Resources"] = dt; }
protected override void Delete(BusinessContext context) { CalendarEventResourceEntity resourceEntity = context.Request.Target as CalendarEventResourceEntity; DeleteRequest deleteRequest = context.Request as DeleteRequest; bool forceBase = deleteRequest.Parameters.GetValue <bool>(EventHelper.FORCE_BASE_PARAM, false); if (!forceBase) { Mediachase.Ibn.Events.CustomMethods.EventHelper.DeleteResourceRequestHandle(deleteRequest); } else { base.Delete(context); } }
/// <summary> /// Создает событие. Логика регистрация в метаданных происходит в базовом классе /// </summary> /// <param name="change">The change.</param> /// <param name="data">The data.</param> /// <returns></returns> protected override void CreateDataItem(ItemChange change, ItemMetadata item, EntityObjectHierarchy data) { if (data == null) { throw new ArgumentNullException("data"); } EntityObject eventEntity = data.InnerEntity; //Дата начала события DateTime eventDtStart = (DateTime)eventEntity[CalendarEventEntity.FieldStart]; //В начале создаем событие без регистрации в мета данных события PrimaryKeyId?eventId = eventEntity.PrimaryKeyId = BusinessManager.Create(eventEntity); //Устанавливаем отношение родительского элемента с дочерними EventHelper.NormailzeReferences(data); foreach (EntityObjectHierarchy child in data.Childrens) { CalendarEventEntity exceptionEvent = child.InnerEntity as CalendarEventEntity; if (exceptionEvent != null) { //Формируем id exception в соответвии принятым форматом DateTime recurrenceId = exceptionEvent.RecurrenceId; exceptionEvent.PrimaryKeyId = EventHelper.CreateExceptionId(eventId.Value, eventDtStart, recurrenceId); } //Вызываем создание дочерних элементов BusinessManager.Create(child.InnerEntity); //создаем дочерние элементы exception if (exceptionEvent != null) { foreach (EntityObjectHierarchy exceptionChild in child.Childrens) { CalendarEventResourceEntity exceptionResource = exceptionChild.InnerEntity as CalendarEventResourceEntity; if (exceptionResource != null) { //устанавливаем связь ресурса с event (exception) exceptionResource.EventId = exceptionEvent.PrimaryKeyId.Value; BusinessManager.Create(exceptionChild.InnerEntity); } } } } item.SetCustomField(SyncReplicaMetadata.URI_COLUMNNAME, (Guid)eventId); }
protected override void PostCreate(BusinessContext context) { CreateRequest createRequest = context.Request as CreateRequest; bool forceBase = createRequest.Parameters.GetValue <bool>(EventHelper.FORCE_BASE_PARAM, false); if (!forceBase) { int principalId = Security.CurrentUserId; if (principalId != -1) { //Создаем организатора эвента CalendarEventResourceEntity organizator = new CalendarEventResourceEntity(); organizator.PrincipalId = principalId; organizator.EventId = ((CreateResponse)context.Response).PrimaryKeyId; organizator.ResourceEventOrganizator = true; organizator.Name = GetResourceTitle(principalId); BusinessManager.Create(organizator); } } base.PostCreate(context); }