private void CreateButton_Click(object sender, RoutedEventArgs e)
        {
            AnnouncementData.calculateErrors();

            if (organiserCombobox.SelectedIndex <= -1)
            {
                MessageBox.Show("Please select the department which is passing this information.");
            }
            else if (AnnouncementData.noDepartmentSelected)
            {
                MessageBox.Show("Please select at least one department which this announcement/notification has to be shown to.");
            }
            else
            {
                SqlCommand cmd = SQLServerConnection.initializeSqlCommand("insert into Announcement (event_heading, event_desc, org_branch, elig_branch, date_created) values (@heading, @desc, @org, @elig, @date)");
                cmd.Parameters.AddWithValue("@heading", AnnouncementData.announcementTitle);
                cmd.Parameters.AddWithValue("@desc", AnnouncementData.announcementDetails);
                cmd.Parameters.AddWithValue("@org", organiserCombobox.SelectedIndex);
                cmd.Parameters.AddWithValue("@elig", AnnouncementData.eligibleBranches());

                DateTime myDateTime       = DateTime.Now;
                string   sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss.fff");

                cmd.Parameters.AddWithValue("@date", sqlFormattedDate);

                cmd.ExecuteNonQuery();

                cmd.Parameters.Clear();
                SQLServerConnection.closeConnection();

                AnnouncementWindow aw = new AnnouncementWindow(true);
                aw.Show();
                this.Close();
            }
        }
Exemple #2
0
        /// <summary>
        /// 更新公告資料
        /// </summary>
        /// <param name="announcementData">announcementData</param>
        /// <returns>bool</returns>
        public async Task <bool> UpdateAnnouncementData(AnnouncementData announcementData)
        {
            try
            {
                FilterDefinition <AnnouncementData> filter = Builders <AnnouncementData> .Filter.Eq("_id", announcementData.Id);

                ReplaceOneResult result = await this.announcementDatas.ReplaceOneAsync(filter, announcementData);

                if (!result.IsAcknowledged)
                {
                    this.logger.LogError($"Update Announcement Data Fail For IsAcknowledged >>> Data:{JsonConvert.SerializeObject(announcementData)}");
                    return(false);
                }

                if (result.ModifiedCount == 0)
                {
                    this.logger.LogError($"Update Announcement Data Fail For ModifiedCount >>> Data:{JsonConvert.SerializeObject(announcementData)}");
                    return(false);
                }

                return(true);
            }
            catch (Exception ex)
            {
                this.logger.LogError($"Update Announcement Data Error >>> Data:{JsonConvert.SerializeObject(announcementData)}\n{ex}");
                return(false);
            }
        }
Exemple #3
0
    protected override void StartShowWindow(object[] data)
    {
        this.data = data[0] as AnnouncementData;

        pool.resetAllTarget();

        if (!string.IsNullOrEmpty(this.data.img_url))
        {
            topImage.enabled = true;
            AssetLoadManager.Instance.LoadAsset <Texture2D>(this.data.img_url, (tex) =>
            {
                topImage.texture = tex;
            });
        }
        else
        {
            topImage.enabled = false;
        }

        if (this.data.sections != null)
        {
            for (int i = 0; i < this.data.sections.Length; i++)
            {
                AnnouncementContentData content = this.data.sections[i];
                UINoticeItem            item    = pool.getIdleTarget <UINoticeItem>();
                item.SetData(content);
            }
        }
    }
Exemple #4
0
        public async Task <ActionResult> Announcements()
        {
            UserModel objUser = Session[SessionConstants.UserSession] as UserModel;
            AnnouncementDataResponse objAnnouncements = await Connector.GetAnnouncements(objUser) as AnnouncementDataResponse;

            AnnouncementData anDetails = objAnnouncements != null && objAnnouncements != null && objAnnouncements.GetAnnouncementData != null ? objAnnouncements.GetAnnouncementData : new AnnouncementData();

            return(View(anDetails));
        }
Exemple #5
0
 /// <summary>
 /// 刷新喇叭
 /// </summary>
 private void RefreshAnnouncement()
 {
     if (View.MiddleView.announcementText == null || View.MiddleView.announcementText.text == "")
     {
         if (hallProxy.HallInfo.announcementQueue.Count > 0)
         {
             AnnouncementData data = hallProxy.HallInfo.announcementQueue.Peek();
             View.MiddleView.announcementText.text = data.Content;
             View.MiddleView.announcementText.rectTransform.localPosition = new Vector3(520, View.MiddleView.announcementText.rectTransform.localPosition.y, 0);
         }
     }
 }
Exemple #6
0
        /// <summary>
        /// 公告資料更新處理
        /// </summary>
        /// <param name="announcementInfo">announcementInfo</param>
        /// <param name="announcementData">announcementData</param>
        /// <returns>string</returns>
        private string UpdateTeamDataHandler(AnnouncementInfoDto announcementInfo, AnnouncementData announcementData)
        {
            if (string.IsNullOrEmpty(announcementInfo.Context))
            {
                return("無公告內容.");
            }

            //// 禁止更改公告存在天數
            announcementData.Context = announcementInfo.Context;
            //// TODO 確認建立時間是否跟著更改
            //announcementData.CreateDate = DateTime.Now;
            return(string.Empty);
        }
Exemple #7
0
 /// <summary>
 /// 喇叭播放完毕回调
 /// </summary>
 private void AnnouncementFinish()
 {
     View.MiddleView.announcementText.text = "";
     if (hallProxy.HallInfo.announcementQueue.Count > 0)
     {
         AnnouncementData data = hallProxy.HallInfo.announcementQueue.Peek();
         if (data.ReduceCirCount() > 0)
         {
             hallProxy.HallInfo.announcementQueue.Enqueue(data);
         }
         SendNotification(NotificationConstant.MEDI_HALL_REFRESHANNOUNCEMENT);
     }
 }
Exemple #8
0
        /// <summary>
        /// 發佈公告
        /// </summary>
        /// <param name="teamCommand">teamCommand</param>
        /// <returns>string</returns>
        public async Task <string> PublishAnnouncement(TeamCommandDto teamCommand)
        {
            try
            {
                bool verifyTeamCommandResult = this.VerifyTeamCommand(teamCommand, true, false, false, false, true, false);
                if (!verifyTeamCommandResult)
                {
                    this.logger.LogError($"Publish Announcement Fail For Verify TeamCommand >>> TeamID:{teamCommand.TeamID} ExaminerID:{teamCommand.ExaminerID} AnnouncementInfo:{JsonConvert.SerializeObject(teamCommand.AnnouncementInfo)}");
                    return("發佈公告失敗.");
                }

                TeamData teamData = await this.teamRepository.GetTeamData(teamCommand.TeamID);

                if (teamData == null)
                {
                    return("車隊不存在.");
                }

                bool verifyTeamExaminerAuthorityResult = this.VerifyTeamExaminerAuthority(teamData, teamCommand.ExaminerID, false, false, string.Empty);
                if (!verifyTeamExaminerAuthorityResult)
                {
                    this.logger.LogError($"Publish Announcement Fail For Verify Team Examiner Authority >>> TeamID:{teamCommand.TeamID} ExaminerID:{teamCommand.ExaminerID} TargetID:{teamCommand.TargetID}");
                    return("發佈公告失敗.");
                }

                Tuple <AnnouncementData, string> createAnnouncementDataResult = this.CreateAnnouncementData(teamCommand.TeamID, teamCommand.ExaminerID, teamCommand.AnnouncementInfo);
                if (!string.IsNullOrEmpty(createAnnouncementDataResult.Item2))
                {
                    return(createAnnouncementDataResult.Item2);
                }

                AnnouncementData announcementData = createAnnouncementDataResult.Item1;
                bool             isSuccess        = await this.announcementRepository.CreateAnnouncementData(announcementData);

                if (!isSuccess)
                {
                    return("發佈公告失敗.");
                }

                //// 無須對【已閱公告名單資料】作審查,不應影響原功能
                bool updateHaveSeenAnnouncementMemberIDsResult = await this.teamRepository.UpdateHaveSeenAnnouncementMemberIDs(teamData.TeamID, new List <string>());

                return(string.Empty);
            }
            catch (Exception ex)
            {
                this.logger.LogError($"Publish Announcement Error >>> TeamID:{teamCommand.TeamID} ExaminerID:{teamCommand.ExaminerID} AnnouncementInfo:{JsonConvert.SerializeObject(teamCommand.AnnouncementInfo)}\n{ex}");
                return("發佈公告發生錯誤.");
            }
        }
Exemple #9
0
        /// <summary>
        /// 建立公告資料
        /// </summary>
        /// <param name="AnnouncementData">AnnouncementData</param>
        /// <returns>bool</returns>
        public async Task <bool> CreateAnnouncementData(AnnouncementData announcementData)
        {
            try
            {
                await this.announcementDatas.InsertOneAsync(announcementData);

                return(true);
            }
            catch (Exception ex)
            {
                this.logger.LogError($"Create Announcement Data Error >>> Data:{JsonConvert.SerializeObject(announcementData)}\n{ex}");
                return(false);
            }
        }
Exemple #10
0
 /// <summary>
 /// 公告播放完毕回调
 /// </summary>
 private void AnnouncementFinish()
 {
     View.MiddleView.AnnouncementText.text = "";
     View.MiddleView.AnnouncementText.rectTransform.localPosition = new Vector3(450, 0, 0);
     if (hallProxy.HallInfo.AnnouncementQueue.Count > 0)                         //hallProxy.HallInfo.AnnouncementQueue.Count > 0
     {
         AnnouncementData data = hallProxy.HallInfo.AnnouncementQueue.Dequeue(); //
         if (data.ReduceCirCount() > 0)
         {
             hallProxy.HallInfo.AnnouncementQueue.Enqueue(data);
         }
         SendNotification(NotificationConstant.MEDI_HALL_REFRESHANNOUNCEMENT);
     }
     SendNotification(NotificationConstant.MEDI_HALL_REFRESHANNOUNCEMENT);//原来这里没有这行的
 }
 public void UpdateNoticeDate(List <AnnouncementData> annoucesList)
 {
     m_NoticeTrans.GetChild(3).gameObject.SetActive(false);
     m_NoticeTrans.GetChild(2).gameObject.SetActive(false);
     for (byte i = 0; i < annoucesList.Count; i++)
     {
         AnnouncementData data = new AnnouncementData();
         data.Title   = annoucesList[i].Title;
         data.Date    = annoucesList[i].Date;
         data.Content = annoucesList[i].Content;
         GameObject go = GameObject.Instantiate(m_NoticeLabelItem);
         m_NoticeTrans.GetChild(1).GetChild(1).GetComponent <UIGrid>().AddChild(go.transform);
         go.GetComponent <UILabel>().text = data.Title + " " + data.Date;
         go.transform.localScale          = Vector3.one;
         NoticeItem item = new NoticeItem(go, data.Content, m_NoticeTrans);
         go.SetActive(true);
     }
 }
Exemple #12
0
 /// <summary>
 /// 刷新公告
 /// </summary>
 private void RefreshAnnouncement()
 {
     if (View.MiddleView.AnnouncementText == null || View.MiddleView.AnnouncementText.text == "")
     {
         if (hallProxy.HallInfo.AnnouncementQueue.Count > 0)
         {
             AnnouncementData data = hallProxy.HallInfo.AnnouncementQueue.Peek();
             View.MiddleView.AnnouncementText.text = data.Content;
             View.MiddleView.AnnouncementText.rectTransform.localPosition = new Vector3(520, View.MiddleView.AnnouncementText.rectTransform.localPosition.y, 0);
         }
         else
         {
             if (hallProxy.HallInfo.NoticeList.ContainsKey(HallNoticeType.HALL_NOTICE))
             {
                 View.MiddleView.AnnouncementText.text = hallProxy.HallInfo.NoticeList[HallNoticeType.HALL_NOTICE].content;
             }
         }
     }
 }
Exemple #13
0
    private IEnumerator ShowSequence(AnnouncementData announcementData)
    {
        smallTitle.Deactivate();
        if (string.IsNullOrEmpty(announcementData.middleTitle))
        {
            middleTitle.Deactivate();
        }
        else
        {
            yield return(middleTitle.Show(announcementData.middleTitle));
        }

        if (!string.IsNullOrEmpty(announcementData.smallTitle))
        {
            yield return(new WaitForSeconds(1));

            yield return(smallTitle.Show(announcementData.smallTitle));
        }

        yield return(new WaitForSeconds(2));
    }
Exemple #14
0
        /// <summary>
        /// 創建新公告資料
        /// </summary>
        /// <param name="teamID">teamID</param>
        /// <param name="publisherID">publisherID</param>
        /// <param name="announcementInfo">announcementInfo</param>
        /// <returns>Tuple(AnnouncementData, string)</returns>
        private Tuple <AnnouncementData, string> CreateAnnouncementData(string teamID, string publisherID, AnnouncementInfoDto announcementInfo)
        {
            if (string.IsNullOrEmpty(announcementInfo.Context))
            {
                return(Tuple.Create <AnnouncementData, string>(null, "無公告內容."));
            }

            if (announcementInfo.LimitDate == 0)
            {
                return(Tuple.Create <AnnouncementData, string>(null, "公告天數無效."));
            }

            DateTime         createDate       = DateTime.Now;
            AnnouncementData announcementData = this.mapper.Map <AnnouncementData>(announcementInfo);

            announcementData.AnnouncementID = this.GetSerialID(createDate);
            announcementData.TeamID         = teamID;
            announcementData.MemberID       = publisherID;
            announcementData.CreateDate     = createDate;
            announcementData.SaveDeadline   = createDate.AddDays(announcementInfo.LimitDate);
            return(Tuple.Create(announcementData, string.Empty));
        }
Exemple #15
0
    public void T_Announce(object message)
    {
        TCOMM_announcing = true;
        AnnouncementData data = (AnnouncementData)message;

        string[] words = data.message.Split(' ');
        TCOMM_canvasActive = true;
        foreach (string word in words)
        {
            TCOMM_announcementText = word;
            Thread.Sleep(data.delay);
        }
        TCOMM_canvasActive = false;
        if (!dogMoved)
        {
            dogMoving = true;
        }
        if (data.unpause)
        {
            paused = false;
        }
        TCOMM_announcing = false;
    }
Exemple #16
0
    public static void Handle(DownloadData dd)
    {
        switch (dd.Type)
        {
        case DownloadType.DOWNLOAD_RANK_INFO:
        {
            //下载普通的排行榜文件
            if (dd.DownState == DownloadState.DS_DOWNLOADED_OK)
            {
                PlayerRole.Instance.RankManager.SaveRankXml(dd.Bytes);
                PlayerRole.Instance.RankManager.DownLoadReadRankXml();
            }
            else if (dd.DownState == DownloadState.DS_DOWNLOADED_ERROR)
            {
                PlayerRole.Instance.RankManager.DownLoadReadRankXml(true);
            }
            return;
        }

        case DownloadType.DOWNLOAD_Month_Rank:
        {
            if (dd.DownState == DownloadState.DS_DOWNLOADED_OK)
            {
                PlayerRole.Instance.MonthManager.SaveMonthRankXml(dd.Bytes, (string)dd.Data);        //保存XML文件
                PlayerRole.Instance.MonthManager.OnDownLoadMonthRankXml((string)dd.Data);
            }
            else if (dd.DownState == DownloadState.DS_DOWNLOADED_ERROR)
            {
                PlayerRole.Instance.MonthManager.OnDownLoadMonthRankXml((string)dd.Data, true);
            }
            return;
        }

        case DownloadType.DOWNLOAD_ANNOUNCEMENT:
        {
            if (dd.DownState == DownloadState.DS_DOWNLOADED_OK)
            {
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(dd.Text);
                XmlElement ele   = doc.DocumentElement;
                XmlNode    title = ele.SelectSingleNode("items");
                List <AnnouncementData> annoucesList = new List <AnnouncementData>();
                for (int i = 0; i < title.ChildNodes.Count; ++i)
                {
                    AnnouncementData ad = new AnnouncementData();
                    ad.Title   = title.ChildNodes[i].Attributes["title"].Value;
                    ad.Date    = title.ChildNodes[i].Attributes["date"].Value;
                    ad.Content = title.ChildNodes[i].Attributes["content"].Value;
                    annoucesList.Add(ad);
                }
                //获取公告列表
                LogonRuntime.LogonLogicUI.UpdateNotice(annoucesList);
            }
            else
            {
                //获取公告失败。
                GlobalHallUIMgr.Instance.ShowSystemTipsUI(StringTable.GetString("UOM_Login_GetNoticeError"), 2.0f, false);
            }
            break;
        }
        }
    }
Exemple #17
0
 public Coroutine Show(AnnouncementData announcementData)
 {
     gameObject.SetActive(true);
     return(StartCoroutine(ShowSequence(announcementData)));
 }
Exemple #18
0
        /// <summary>
        /// 編輯公告
        /// </summary>
        /// <param name="teamCommand">teamCommand</param>
        /// <returns>string</returns>
        public async Task <string> EditAnnouncement(TeamCommandDto teamCommand)
        {
            try
            {
                bool verifyTeamCommandResult = this.VerifyTeamCommand(teamCommand, true, false, false, false, true, false);
                if (!verifyTeamCommandResult)
                {
                    this.logger.LogError($"Edit Announcement Fail For Verify TeamCommand >>> TeamID:{teamCommand.TeamID} ExaminerID:{teamCommand.ExaminerID} AnnouncementInfo:{JsonConvert.SerializeObject(teamCommand.AnnouncementInfo)}");
                    return("編輯公告失敗.");
                }

                if (string.IsNullOrEmpty(teamCommand.AnnouncementInfo.AnnouncementID))
                {
                    return("公告編號無效.");
                }

                AnnouncementData announcementData = await this.announcementRepository.GetAnnouncementData(teamCommand.AnnouncementInfo.AnnouncementID);

                if (announcementData == null)
                {
                    return("公告不存在.");
                }

                TeamData teamData = await this.teamRepository.GetTeamData(teamCommand.TeamID);

                if (teamData == null)
                {
                    return("車隊不存在.");
                }

                bool verifyTeamExaminerAuthorityResult = this.VerifyTeamExaminerAuthority(teamData, teamCommand.ExaminerID, false, false, string.Empty);
                if (!verifyTeamExaminerAuthorityResult)
                {
                    this.logger.LogError($"Edit Announcement Fail For Verify Team Examiner Authority >>> TeamID:{teamCommand.TeamID} ExaminerID:{teamCommand.ExaminerID} AnnouncementInfo:{JsonConvert.SerializeObject(teamCommand.AnnouncementInfo)}");
                    return("編輯公告失敗.");
                }

                string updateTeamDataHandlerReault = this.UpdateTeamDataHandler(teamCommand.AnnouncementInfo, announcementData);
                if (!string.IsNullOrEmpty(updateTeamDataHandlerReault))
                {
                    return(updateTeamDataHandlerReault);
                }

                bool updateAnnouncementDataResult = await this.announcementRepository.UpdateAnnouncementData(announcementData);

                if (!updateAnnouncementDataResult)
                {
                    return("公告資料更新失敗.");
                }

                //// 無須對【已閱公告名單資料】作審查,不應影響原功能
                bool updateHaveSeenAnnouncementMemberIDsResult = await this.teamRepository.UpdateHaveSeenAnnouncementMemberIDs(teamData.TeamID, new List <string>());

                return(string.Empty);
            }
            catch (Exception ex)
            {
                this.logger.LogError($"Edit Announcement Error >>> TeamID:{teamCommand.TeamID} ExaminerID:{teamCommand.ExaminerID} AnnouncementInfo:{JsonConvert.SerializeObject(teamCommand.AnnouncementInfo)}\n{ex}");
                return("編輯公告發生錯誤.");
            }
        }