Пример #1
0
        private string CreateICSString(UsersEntity user)
        {
            List <EventEntity> list    = new App.EventsApplication().GetEventList(user.UserID, DateTime.Parse("1990/01/01"), DateTime.MaxValue, user.UserID, string.Empty, 0);
            StringBuilder      builder = new StringBuilder();

            builder.Append("BEGIN:VCALENDAR\n");
            builder.Append("PRODID:-//SunNet Solution//My PM Event Book 1.0000//EN\n");
            builder.Append("VERSION:2.0\n");
            builder.Append("CALSCALE:GREGORIAN\n");
            builder.Append("METHOD:PUBLISH\n");
            builder.Append("X-WR-CALNAME:My PM Event Book\n");
            builder.Append("X-WR-TIMEZONE:America/Chicago\n");
            foreach (EventEntity entity in list)
            {
                DateTime dtFromDay = entity.FromDay;
                DateTime dtToDay   = entity.ToDay;
                if (!entity.AllDay)
                {
                    dtFromDay = DateTime.Parse(string.Format("{0}/{1}/{2} {3} {4}"
                                                             , entity.FromDay.Month, entity.FromDay.Day, entity.FromDay.Year, entity.FromTime, entity.FromTimeType == 1 ? "AM" : "PM"));

                    dtToDay = DateTime.Parse(string.Format("{0}/{1}/{2} {3} {4}"
                                                           , entity.ToDay.Month, entity.ToDay.Day, entity.ToDay.Year, entity.ToTime, entity.ToTimeType == 1 ? "AM" : "PM"));
                }

                StringBuilder  builder2 = new StringBuilder();
                ProjectsEntity project  = new App.ProjectApplication().Get(entity.ProjectID);
                builder2.Append("Project Name: " + project.Title + @"\n");
                builder2.Append("Name: " + entity.Name + @"\n");
                builder2.Append("Details: " + entity.Details + @"\n");
                if (entity.AllDay)
                {
                    builder2.Append("FromDay: " + dtFromDay.ToString("MM/dd/yyyy") + @"\n");
                    builder2.Append("ToDay: " + dtToDay.ToString("MM/dd/yyyy") + @"\n");
                }
                else
                {
                    builder2.Append("FromDay: " + dtFromDay.ToString("MM/dd/yyyy hh:mm t") + @"\n");
                    builder2.Append("ToDay: " + dtToDay.ToString("MM/dd/yyyy hh:mm t") + @"\n");
                }

                builder.Append("BEGIN:VEVENT\n");

                if (entity.AllDay)
                {
                    builder.Append("DTEND;VALUE=DATE:" + dtToDay.AddDays(1).ToString("yyyyMMdd") + "\n");
                }
                else
                {
                    builder.Append("DTEND:" + dtToDay.ToString("yyyyMMddTHHmmss") + "\n");
                }


                builder.Append("DTSTAMP:" + DateTime.Now.ToString("yyyyMMddTHHmmss") + "\n");

                if (entity.AllDay)
                {
                    builder.Append("DTSTART;VALUE=DATE:" + dtFromDay.ToString("yyyyMMdd") + "\n");
                }
                else
                {
                    builder.Append("DTSTART:" + dtFromDay.ToString("yyyyMMddTHHmmss") + "\n");
                }


                builder.Append("UID:" + entity.CreatedBy.ToString("N").ToLower() + "@myfamilybook.us\n");
                builder.Append("CREATED:" + entity.CreatedOn.ToString("yyyyMMddTHHmmss") + "\n");
                builder.Append("DESCRIPTION:" + builder2.ToString() + "\n");
                builder.Append("LAST-MODIFIED:" + entity.UpdatedOn.ToString("yyyyMMddTHHmmss") + "\n");
                builder.Append("LOCATION:" + entity.Where + "\n");
                builder.Append("SEQUENCE:0\n");
                builder.Append("STATUS:CONFIRMED\n");
                builder.Append("SUMMARY:" + entity.Name + "\n");
                builder.Append("TRANSP:TRANSPARENT\n");

                builder.Append("END:VEVENT\n");
            }
            builder.Append("END:VCALENDAR");
            return(builder.ToString());
        }
Пример #2
0
        private List <EventInviteEntity> GetInviteData(EventEntity eventEntity, bool isDelete = false)
        {
            List <EventInviteEntity> list = new App.EventsApplication().GetEventInvites(eventEntity.ID);

            foreach (EventInviteEntity tmpItem in list.FindAll(r => r.UserID > 0))
            {
                UsersEntity    tmpUser      = new App.UserApplication().GetUser(tmpItem.UserID);
                CompanysEntity comanyEntity = new App.CompanyApplication().GetCompany(tmpUser.CompanyID);
                tmpItem.FirstName   = tmpUser.FirstName;
                tmpItem.LastName    = tmpUser.LastName;
                tmpItem.Email       = tmpUser.Email;
                tmpItem.IsSeleted   = true;
                tmpItem.Title       = tmpUser.Title;
                tmpItem.CompanyName = comanyEntity.CompanyName;
            }
            if (isDelete)
            {
                return(list);
            }

            List <int>     listUserId    = new App.ProjectApplication().GetActiveUserIdByProjectId(eventEntity.ProjectID);
            ProjectsEntity projectEntity = new App.ProjectApplication().Get(eventEntity.ProjectID);

            litProject.Text = projectEntity.Title;

            listUserId.Remove(UserInfo.UserID);
            if (UserInfo.Office == "CN" && UserInfo.UserType == "SUNNET")//山诺 上海的员工只能获取本公司的项目的相关人员
            {
                if (projectEntity.CompanyID == Config.SunnetCompany)
                {
                    foreach (int tmpId in listUserId)
                    {
                        UsersEntity tmpUser = new App.UserApplication().GetUser(tmpId);
                        if (tmpUser == null)
                        {
                            continue;
                        }
                        if (tmpUser.UserType == "SUNNET")
                        {
                            if (list.Find(r => r.UserID == tmpUser.UserID) == null)
                            {
                                list.Add(new EventInviteEntity()
                                {
                                    EventID = eventEntity.ID, UserID = tmpUser.UserID, FirstName = tmpUser.FirstName, LastName = tmpUser.LastName
                                });
                            }
                        }
                    }
                }
            }
            else
            {
                if (UserInfo.Role == RolesEnum.CLIENT || UserInfo.Role == RolesEnum.ADMIN || UserInfo.Role == RolesEnum.PM || UserInfo.Role == RolesEnum.Sales || UserInfo.Role == RolesEnum.Contactor)
                {
                    foreach (int tmpId in listUserId)
                    {
                        UsersEntity tmpUser = new App.UserApplication().GetUser(tmpId);
                        if (tmpUser == null)
                        {
                            continue;
                        }
                        CompanysEntity comanyEntity = new App.CompanyApplication().GetCompany(tmpUser.CompanyID);
                        if (projectEntity.CompanyID == Config.SunnetCompany) //如果是公司项目
                        {
                            if (list.Find(r => r.UserID == tmpUser.UserID) == null)
                            {
                                list.Add(new EventInviteEntity()
                                {
                                    EventID = eventEntity.ID,
                                    UserID  = tmpUser.UserID
                                    ,
                                    FirstName   = tmpUser.FirstName,
                                    LastName    = tmpUser.LastName,
                                    Title       = tmpUser.Title,
                                    CompanyName = comanyEntity.CompanyName
                                });
                            }
                        }
                        else
                        {
                            if (tmpUser.Role == RolesEnum.CLIENT || tmpUser.Role == RolesEnum.ADMIN || tmpUser.Role == RolesEnum.PM || tmpUser.Role == RolesEnum.Sales || UserInfo.Role == RolesEnum.Contactor)
                            {
                                if (list.Find(r => r.UserID == tmpUser.UserID) == null)
                                {
                                    list.Add(new EventInviteEntity()
                                    {
                                        EventID = eventEntity.ID,
                                        UserID  = tmpUser.UserID
                                        ,
                                        FirstName   = tmpUser.FirstName,
                                        LastName    = tmpUser.LastName,
                                        Title       = tmpUser.Title,
                                        CompanyName = comanyEntity.CompanyName
                                    });
                                }
                            }
                        }
                    }
                }
            }
            return(list);
        }
Пример #3
0
        private List <EventInviteEntity> BuilderInvite(EventsView model)
        {
            ///获取旧数据
            List <EventInviteEntity> oldlist = new App.EventsApplication().GetEventInvites(model.ID);

            foreach (EventInviteEntity tmpItem in oldlist)
            {
                if (tmpItem.UserID > 0)
                {
                    UsersEntity tmpUser = new App.UserApplication().GetUser(tmpItem.UserID);
                    tmpItem.FirstName = tmpUser.FirstName;
                    tmpItem.LastName  = tmpUser.LastName;
                    tmpItem.Email     = tmpUser.Email;
                }
            }


            ///获取project users 选中的用户,并区分是新加的,还是原本就有的
            List <EventInviteEntity> inviteList = new List <EventInviteEntity>();
            string projectUserIds = QF("chkProjectUser");

            if (projectUserIds.Trim() != string.Empty)
            {
                List <int> listUserId = new App.ProjectApplication().GetActiveUserIdByProjectId(model.ProjectID);
                projectUserIds = projectUserIds.Trim();
                if (projectUserIds.EndsWith(","))
                {
                    projectUserIds = projectUserIds.Remove(projectUserIds.Length - 1);
                }
                int tmpId;
                foreach (string s in projectUserIds.Split(','))
                {
                    if (int.TryParse(s, out tmpId))
                    {
                        if (listUserId.Contains(tmpId))
                        {
                            EventInviteEntity newEntity = new EventInviteEntity()
                            {
                                CreatedID = UserInfo.UserID,
                                EventID   = model.ID,
                                FromDay   = model.FromDay,
                                UserID    = tmpId,
                                Email     = "",
                                FirstName = "",
                                LastName  = ""
                            };
                            if (oldlist.Find(r => r.UserID == tmpId) != null)
                            {
                                newEntity.OptionStatus = 1;
                            }
                            else
                            {
                                newEntity.OptionStatus = 2;
                            }
                            inviteList.Add(newEntity);
                        }
                    }
                }
            }

            ///标记被删除的project users
            foreach (EventInviteEntity item in oldlist.FindAll(r => r.UserID > 0))
            {
                if (inviteList.Find(r => r.UserID == item.UserID) == null)
                {
                    item.OptionStatus = 3;
                    inviteList.Add(item);
                }
            }

            ///获取other user,  如果有填写 Email 则区分是新加的,还是原有的
            int otherusers_count = QF("otherusers_count", 0);

            if (otherusers_count > 0)
            {
                string firstName;
                string lastName;
                string email;
                for (int i = 1; i <= otherusers_count; i++)
                {
                    firstName = QF("txtOtherUserFirst" + i).Trim();
                    lastName  = QF("txtOtherUserLast" + i).Trim();
                    email     = QF("txtOtherUserEmail" + i).Trim().ToLower();
                    if (firstName != string.Empty && lastName != string.Empty)
                    {
                        EventInviteEntity newEntity = new EventInviteEntity()
                        {
                            CreatedID = UserInfo.UserID,
                            LastName  = lastName,
                            FirstName = firstName,
                            Email     = email,
                            FromDay   = model.FromDay,
                            EventID   = model.ID,
                            UserID    = 0
                        };

                        if (email != string.Empty)
                        {
                            if (oldlist.Find(r => r.Email.ToLower() == email) != null)
                            {
                                newEntity.OptionStatus = 1;
                            }
                            else
                            {
                                newEntity.OptionStatus = 2;
                            }
                        }
                        else
                        {
                            newEntity.OptionStatus = 2;
                        }
                        inviteList.Add(newEntity);
                    }
                }

                ///标记被删除的 other  users(只针对有email的)
                foreach (EventInviteEntity item in oldlist.FindAll(r => r.UserID == 0))
                {
                    if (item.Email != string.Empty)
                    {
                        if (inviteList.Find(r => r.Email.ToLower() == item.Email) == null)
                        {
                            item.OptionStatus = 3;
                            inviteList.Add(item);
                        }
                    }
                }
            }
            return(inviteList);
        }
Пример #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            projApp = new ProjectApplication();

            if (!Page.IsPostBack)
            {
                int         id          = QS("ID", 0);
                int         canEdit     = QS("c", 0);
                EventEntity eventEntity = new EventsApplication().GetEventInfo(id);
                ltrlName.Text     = eventEntity.Name;
                ltrlDetail.Text   = eventEntity.Details;
                ltrlWhere.Text    = eventEntity.Where;
                chkAllDay.Checked = eventEntity.AllDay;
                chkAllDay.Enabled = false;
                string fromTime = string.Empty;
                string toTime   = string.Empty;

                if (!chkAllDay.Checked)
                {
                    fromTime = eventEntity.FromDayString + " " + eventEntity.FromTime + " " + (eventEntity.FromTimeType == 1 ? "AM" : "PM");
                    toTime   = eventEntity.ToDayString + " " + eventEntity.ToTime + " " + (eventEntity.ToTimeType == 1 ? "AM" : "PM");
                }
                else
                {
                    fromTime = eventEntity.FromDayString;
                    toTime   = eventEntity.ToDayString;
                }
                ltrlFrom.Text    = fromTime;
                ltrlTo.Text      = toTime;
                ltrlAlert.Text   = eventEntity.Alert.GetName <AlertType>();
                imgIcon.ImageUrl = eventEntity.IconPath;
                if (eventEntity.ProjectID != -1)
                {
                    ProjectsEntity projectsEntity = projApp.Get(eventEntity.ProjectID);
                    ltrlProject.Text = projectsEntity.Title;
                }
                else
                {
                    ltrlProject.Text = string.Empty;
                }
                litCreated.Text = new App.UserApplication().GetUser(eventEntity.CreatedBy).GetClientUserName(UserInfo);

                List <EventInviteEntity> list = new App.EventsApplication().GetEventInvites(eventEntity.ID);
                UsersEntity userEntity;
                foreach (EventInviteEntity tmpItem in list)
                {
                    if (tmpItem.UserID > 0)
                    {
                        userEntity        = new App.UserApplication().GetUser(tmpItem.UserID);
                        tmpItem.FirstName = userEntity.FirstName;
                        tmpItem.LastName  = userEntity.LastName;
                    }
                }

                if (eventEntity.ProjectID.ToString() == Config.HRProjectID)
                {
                    chkOff.Checked = eventEntity.IsOff;
                }
                else
                {
                    div_off.Attributes.Add("style", "display:none");
                }

                rptInvite.DataSource = list.OrderBy(r => r.LastName);
                rptInvite.DataBind();
            }
            ((Pop)(this.Master)).Width = 425;
        }