Ejemplo n.º 1
0
		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);
		}
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 9
0
        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);
            }
        }
Ejemplo n.º 11
0
        /// <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);
        }
Ejemplo n.º 12
0
        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);
        }