Example #1
0
            /// <summary>
            /// 成功写入返回路径
            /// </summary>
            /// <param name="url">绝对路径</param>
            /// <param name="src">相对路径</param>
            /// <param name="htmlcontent">内容</param>
            /// <returns>返回绝对路径</returns>
            public String PrintFileCreate(String url, Byte[] htmlcontent)
            {
                try
                {
                    UnixStamp ustamp  = new UnixStamp();
                    string    filestr = @"\" + System.DateTime.Now.Year.ToString() + @"\" + System.DateTime.Now.Month.ToString() + @"\" + System.DateTime.Now.Day.ToString(); //文件夹
                    string    fileurl = url + filestr;                                                                                                                        //绝对路径
                    //    string filesrc = src + filestr;//相对路径
                    if (!(Directory.Exists(fileurl)))
                    {
                        Directory.CreateDirectory(fileurl);
                    }
                    string filedir = @"\" + ustamp.DateTimeToStamp(System.DateTime.Now) + ".bin";
                    string fullurl = fileurl + filedir;
                    //   string fullsrc = filesrc + filedir;
                    if (!(File.Exists(fullurl)))
                    {
                        File.WriteAllBytesAsync(fullurl, htmlcontent);
                        fullurl = fullurl.Replace(@"\", "-");
                        return(fullurl);
                    }
                    return(null);
                }
                catch (Exception)
                {
                    return(null);

                    throw;
                }
            }
        public IActionResult Post(string type, IFormFile file)
        {
            long size = file.Length;

            //限制文件大小
            if (size > 1024 * 1024 * 5 * 20)
            {
                return(BadRequest("文件超过限制大小100MB"));
            }
            List <string> filePathREsultList = new List <string>();

            //-0-0-0-0-0-0-0-0-------------暂存
            var        fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
            string     filePath = ServiceConfigs.FileUpDirectory;
            FilesPrint fp       = new FilesPrint();
            string     suffix   = fileName.Split('.')[1];

            if ((!pictureFormatArray.Contains(suffix)))
            {
                return(StatusCode(500, "文件格式错误"));
            }
            filePath += @"\" + System.DateTime.Now.Year.ToString() + @"\" + System.DateTime.Now.Month.ToString() + @"\" + System.DateTime.Now.Day.ToString();//文件夹
            UnixStamp ustamp = new UnixStamp();

            if (!(Directory.Exists(filePath)))
            {
                Directory.CreateDirectory(filePath);
            }
            fileName = @"\" + ustamp.DateTimeToStamp(System.DateTime.Now) + "." + suffix;
            string fileFullName = filePath + fileName;

            try
            {
                using (FileStream fs = System.IO.File.Create(fileFullName))
                {
                    file.CopyTo(fs);
                    fs.Flush();
                }
            }
            catch (Exception e)
            {
                string ss = e.ToString();
                return(StatusCode(404, $"存储错误+filefullname={fileFullName}"));

                throw;
            }

            filePathREsultList.Add($"/src/Pictures/{fileName}");

            string message = $" file(s)/{size} bytes uploaded  successfully! fileurl={fileFullName}";

            return(Ok(message));
        }
        // GET: api/Committees
        public IHttpActionResult getNotifications()
        {
            object obj    = null;
            int    userId = 0;

            try
            {
                try
                {
                    userId = Convert.ToInt32(((ClaimsIdentity)User?.Identity).Claims?.FirstOrDefault(x => x.Type == "ID").Value);
                }
                // string _userName = System.Web.HttpContext.Current.User.Identity.Name;

                catch (Exception ex)
                {
                    return(Json(new { success = 0, error = "Invalid Token" }));
                }
                List <AlertPoco> alertPoco = new List <AlertPoco>();
                List <Alert>     alerts    = db.Alerts.Where(x => x.UserId == userId).ToList();
                foreach (var alert in alerts)
                {
                    DateTime t = DateTime.Parse(alert.CreatedAt);

                    alertPoco.Add(new AlertPoco()
                    {
                        Id          = alert.Id,
                        Title       = alert?.Title,
                        UserId      = userId,
                        Message     = alert.Message,
                        CreatedAt   = UnixStamp.DateTimeToUnixTimestamp(t),
                        Action_Id1  = alert?.Action_Id1,
                        Action_Id2  = alert?.Action_Id2,
                        Action_Type = alert?.ClickAction?.Click_Action
                    });
                }
                ;

                if (alertPoco.Count != 0)
                {
                    return(Json(new { success = 1, error = obj, data = alertPoco.OrderByDescending(x => x.Id) }));
                }
                else
                {
                    return(Json(new { success = 0, error = "No data", data = obj }));
                }
            }
            catch (Exception ex)
            {
                return(Json(new { success = 0, error = ex.Message }));
            }
        }
        /// <summary>
        /// 返回存储路径
        /// </summary>
        /// <param name="url"></param>
        /// <param name="file"></param>
        /// <returns>数据库存储路径!!! </returns>
        public string PrintFileCreate(IFormFile file)
        {
            var        fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
            string     filePath = ServiceConfigs.FileUpDirectory;
            FilesPrint fp       = new FilesPrint();
            string     suffix   = fileName.Split('.')[1];

            if ((!pictureFormatArray.Contains(suffix)))
            {
                _logger.LogWarning("+文件类型错误+");
                return(null);
            }
            filePath += @"\" + System.DateTime.Now.Year.ToString() + @"\" + System.DateTime.Now.Month.ToString() + @"\" + System.DateTime.Now.Day.ToString();//文件夹
            UnixStamp ustamp = new UnixStamp();

            if (!(Directory.Exists(filePath)))
            {
                Directory.CreateDirectory(filePath);
            }
            fileName = @"\" + ustamp.DateTimeToStamp(System.DateTime.Now) + "." + suffix;
            string fileFullName = filePath + fileName;

            try
            {
                using (FileStream fs = System.IO.File.Create(fileFullName))
                {
                    file.CopyTo(fs);
                    fs.Flush();
                }
            }
            catch (Exception e)
            {
                string ss = e.ToString();
                _logger.LogError($"+存储异常+{ss}");
                return(null);
            }
            FileStreamPandO.FilesPrint f = new FilesPrint();
            return(f.SaveSRC(fileFullName));
        }
        public IHttpActionResult GetMeetingById(string meetingid, string committeeid, string ps)
        {
            object obj    = null;
            int    userId = 0;

            try
            {
                // string _userName = System.Web.HttpContext.Current.User.Identity.Name;
                //  int memberId = db.Users.FirstOrDefault(x => x.UserName == _userName).ID;
                try
                {
                    userId = Convert.ToInt32(((ClaimsIdentity)User?.Identity).Claims?.FirstOrDefault(x => x.Type == "ID").Value);
                }
                // string _userName = System.Web.HttpContext.Current.User.Identity.Name;

                catch (Exception ex)
                {
                    return(Json(new { success = 0, error = "Invalid Token" }));
                }
                string decryptedCommitteeId = HypridEncryption.decrypt(committeeid, ps);
                string decryptedMeetingId   = HypridEncryption.decrypt(meetingid, ps);
                int    decCommitteeId       = Convert.ToInt32(decryptedCommitteeId);
                int    decMeetingId         = Convert.ToInt32(decryptedMeetingId);

                Meeting meeting = db.Meetings.Find(decMeetingId);

                CommitteesMember committeesMembers = db.CommitteesMembers.FirstOrDefault(x => x.MeetingId == decMeetingId && x.MemberId == userId && x.CommitteeId == decCommitteeId);
                if (meeting != null || committeesMembers != null)
                {
                    DateTime          createdAt   = DateTime.Parse(meeting.CreatedAt);
                    DateTime          meetingDate = DateTime.Parse(meeting.MeetingDate);
                    List <AgendaPoco> Agendas     = new List <AgendaPoco>();
                    foreach (var agenda in meeting.Agenda)
                    {
                        //  DateTime AgendaTime = DateTime.Parse(agenda.AgendaTime);
                        DateTime CreatedAt = DateTime.Parse(agenda.CreatedAt);
                        Agendas.Add(new AgendaPoco()
                        {
                            id = agenda.id, MeetingId = agenda.MeetingId, AgendaDesc = agenda.AgendaDesc, CreatedAt = UnixStamp.DateTimeToUnixTimestamp(CreatedAt)
                        });
                    }
                    List <MeetingDetailsPoco> MeetingDetailsPoco = new List <MeetingDetailsPoco>();

                    List <MeetingHistoryPoco> MeetingHistories = new List <MeetingHistoryPoco>();
                    foreach (var MeetingHistory in meeting.MeetingHistories)
                    {
                        DateTime meetingHistoryDate      = DateTime.Parse(MeetingHistory.MeetingDate);
                        DateTime meetingHistoryCreatedAt = DateTime.Parse(MeetingHistory.CreatedAt);
                        MeetingHistories.Add(new MeetingHistoryPoco()
                        {
                            Id = MeetingHistory.Id, MeetingId = MeetingHistory.MeetingId, MeetingDate = UnixStamp.DateTimeToUnixTimestamp(meetingHistoryDate), TitleAr = MeetingHistory.TitleAr, TitleEn = MeetingHistory.TitleEn, CreatedAt = UnixStamp.DateTimeToUnixTimestamp(meetingHistoryCreatedAt)
                        });
                    }
                    MeetingDetailsPoco.Add(new Models.MeetingDetailsPoco()
                    {
                        Agenda           = Agendas.Count == 0?null:Agendas,
                        MeetingHistory   = MeetingHistories.Count == 0?new List <MeetingHistoryPoco>():MeetingHistories,
                        MeetingId        = meeting.MeetingId,
                        MeetingTitle     = meeting.MeetingTitle,
                        CommitteeId      = meeting.CommitteeId,
                        MeetingDate      = UnixStamp.DateTimeToUnixTimestamp(meetingDate),
                        Latitude         = meeting.Latitude,
                        longitude        = meeting.longitude,
                        MeetingDesc      = meeting.MeetingDesc,
                        Status           = MeetingHistories.LastOrDefault(x => x.MeetingId == meeting.MeetingId) == null?null: MeetingHistories.Last(x => x.MeetingId == meeting.MeetingId),
                        MeetingAddress   = meeting.MeetingAddress,
                        CreatedAt        = UnixStamp.DateTimeToUnixTimestamp(createdAt),
                        IsAttended       = committeesMembers?.MemberWillAttend,
                        IsMinuteAccepted = committeesMembers?.IsMinuteAccepted,
                        MinutePDF        = meeting?.MinutesOfMeeting
                    });


                    return(Json(new { success = 1, error = obj, data = MeetingDetailsPoco[0] }));
                }
                else
                {
                    return(Json(new { success = 0, error = "Meeting not found", data = obj }));
                }
            }
            catch (Exception ex)
            {
                return(Json(new { success = 0, error = ex.InnerException }));
            }
        }
        // GET: api/Committees
        public IHttpActionResult GetCommittees()
        {
            List <CommitteePoco> committeesPoco      = new List <CommitteePoco>();
            object                  obj              = null;
            int                     userId           = 0;
            List <Committee>        Committees       = new List <Committee>();
            List <CommitteesMember> committeesMember = new List <CommitteesMember>();

            try
            {
                try
                {
                    userId = Convert.ToInt32(((ClaimsIdentity)User?.Identity).Claims?.FirstOrDefault(x => x.Type == "ID").Value);
                }
                // string _userName = System.Web.HttpContext.Current.User.Identity.Name;

                catch (Exception ex)
                {
                    return(Json(new { success = 0, error = "Invalid Token" }));
                }
                User user = db.Users.FirstOrDefault(x => x.ID == userId);
                if (user.SystemRoleMap.titleEn == "Admin" || user.SystemRoleMap.titleEn == "Secrtary")
                {
                    Committees = db.Committees.Select(x => x).ToList();
                }
                if (user.SystemRoleMap.titleEn == "Department Manger")
                {
                    Committees = db.Committees.Where(x => x.DeptId == user.ManagerOfDepartment).ToList();
                }
                if (user.SystemRoleMap.titleEn == "Member")
                {
                    committeesMember = db.CommitteesMembers.Where(x => x.MemberId == userId).ToList();

                    if (committeesMember.Count != 0)
                    {
                        foreach (var Committee in committeesMember)
                        {
                            DateTime t = DateTime.Parse(Committee.CreatedAt);


                            committeesPoco.Add(new CommitteePoco()
                            {
                                CommitteeId   = Committee.Committee.CommitteeId,
                                CommitteeName = Committee.Committee.CommitteeName,
                                Activity      = Committee.Committee.Activity,

                                Importance   = Committee.Committee.Importance,
                                Type         = Committee.Committee.Type,
                                MembersCount = db.CommitteesMembers.Where(x => x.CommitteeId == Committee.CommitteeId).Count(),

                                CreatedAt = UnixStamp.DateTimeToUnixTimestamp(t)
                                ,
                            });
                        }
                        ;
                        return(Json(new
                        {
                            success = 1,
                            error = obj,
                            data = committeesPoco.GroupBy(a => a.CommitteeId)
                                   .Select(g => g.First()).Distinct().ToList()
                        }));
                    }
                }

                // Committees =

                if (Committees.Count != 0)
                {
                    foreach (var Committee in Committees)
                    {
                        DateTime t = DateTime.Parse(Committee.CreatedAt);


                        committeesPoco.Add(new CommitteePoco()
                        {
                            CommitteeId   = Committee.CommitteeId,
                            CommitteeName = Committee.CommitteeName,
                            Activity      = Committee.Activity,

                            Importance   = Committee.Importance,
                            Type         = Committee.Type,
                            MembersCount = db.CommitteesMembers.Where(x => x.CommitteeId == Committee.CommitteeId).Count(),

                            CreatedAt = UnixStamp.DateTimeToUnixTimestamp(t)
                            ,
                        });
                    }
                    ;
                    return(Json(new
                    {
                        success = 1,
                        error = obj,
                        data = committeesPoco.GroupBy(a => a.CommitteeId)
                               .Select(g => g.First()).Distinct().ToList()
                    }));
                }
                else
                {
                    return(Json(new { success = 0, error = "no data found", data = obj }));
                }
            }
            catch (Exception ex)
            {
                return(Json(new { success = 0, error = ex.InnerException }));
            }
        }
        public IHttpActionResult GetCommitteeById(string committeeid, string ps)
        {
            object obj    = null;
            int    userId = 0;

            try
            {
                string decryptedCommitteeId       = HypridEncryption.decrypt(committeeid, ps);
                int    decryptedcommitteeId       = Convert.ToInt32(decryptedCommitteeId);
                List <UserCommitteePoco> users    = new List <UserCommitteePoco>();
                List <MeetingPoco>       meetings = new List <MeetingPoco>();
                CommitteesMember         cm       = db.CommitteesMembers.FirstOrDefault(x => x.CommitteeId == decryptedcommitteeId);
                if (cm != null)
                {
                    //   string _userName = System.Web.HttpContext.Current.User.Identity.Name;
                    //  int memberId = db.Users.FirstOrDefault(x => x.UserName == _userName).ID;
                    try
                    {
                        userId = Convert.ToInt32(((ClaimsIdentity)User?.Identity).Claims?.FirstOrDefault(x => x.Type == "ID").Value);
                    }
                    // string _userName = System.Web.HttpContext.Current.User.Identity.Name;

                    catch (Exception ex)
                    {
                        return(Json(new { success = 0, error = "Invalid Token" }));
                    }

                    string commmitteManger   = db.Committees.FirstOrDefault(x => x.CommitteeId == decryptedcommitteeId).CommitteeManager;
                    string commmitteSecratry = db.Committees.FirstOrDefault(x => x.CommitteeId == decryptedcommitteeId).CommitteeSecretary;
                    int    mangId            = Convert.ToInt32(commmitteManger);
                    User   userManager       = db.Users.FirstOrDefault(x => x.ID == mangId);
                    int    secId             = Convert.ToInt32(commmitteSecratry);
                    User   userSecratry      = db.Users.FirstOrDefault(x => x.ID == secId);
                    List <CommitteesMember> committeesMeeting = db.CommitteesMembers.Where(x => x.CommitteeId == decryptedcommitteeId).ToList();
                    foreach (var committeeMeeting in committeesMeeting)
                    {
                        DateTime createdAt = DateTime.Parse(committeeMeeting?.CreatedAt);
                        string   t         = Utilities.ConvertDateCalendar(Convert.ToDateTime(committeeMeeting?.Meeting?.MeetingDate), "Gregorian", "en-US");
                        if (committeeMeeting.Meeting == null)
                        {
                        }
                        else
                        {
                            DateTime meetingDate = DateTime.Parse(t);

                            if (!meetings.Any(x => x.MeetingId == committeeMeeting?.Meeting?.MeetingId))
                            {
                                meetings.Add(new MeetingPoco()
                                {
                                    MeetingId = committeeMeeting.Meeting.MeetingId, MeetingAddress = committeeMeeting.Meeting.MeetingAddress, MeetingTitle = committeeMeeting.Meeting.MeetingTitle, MeetingDate = UnixStamp.DateTimeToUnixTimestamp(meetingDate), CreatedAt = UnixStamp.DateTimeToUnixTimestamp(createdAt), IsAttended = committeeMeeting.MemberWillAttend
                                });
                            }
                        }
                    }
                    List <CommitteesMember> members = db.CommitteesMembers.Where(x => x.CommitteeId == decryptedcommitteeId).ToList();
                    users.Add(new UserCommitteePoco()
                    {
                        ID           = userManager?.ID,
                        Phone        = Convert.ToInt64(userManager?.Phone),
                        UserEmailId  = userManager?.UserEmailId,
                        UserImage    = userManager?.UserImage,
                        UserName     = userManager?.UserName,
                        WorkSide     = userManager?.WorkSide,
                        CommitteRole = db.Roles.FirstOrDefault(x => x.ID == 5)
                    });
                    users.Add(new UserCommitteePoco()
                    {
                        ID           = userSecratry?.ID,
                        Phone        = Convert.ToInt64(userSecratry?.Phone),
                        UserEmailId  = userSecratry?.UserEmailId,
                        UserImage    = userSecratry?.UserImage,
                        UserName     = userSecratry?.UserName,
                        WorkSide     = userSecratry?.WorkSide,
                        CommitteRole = db.Roles.FirstOrDefault(x => x.ID == 4)
                    });
                    if (members.Count != 0)
                    {
                        foreach (var member in members.GroupBy(a => a.MemberId)
                                 .Select(g => g.First()).Distinct().ToList())
                        {
                            if (!users.Any(x => x.ID == member.MemberId))
                            {
                                users.Add(new UserCommitteePoco()
                                {
                                    ID           = member?.User?.ID,
                                    UserName     = member?.User?.UserName,
                                    Phone        = Convert.ToInt64(member?.User?.Phone),
                                    UserEmailId  = member?.User?.UserEmailId,
                                    UserImage    = member?.User?.UserImage,
                                    WorkSide     = userManager?.WorkSide,
                                    CommitteRole = db.Roles.FirstOrDefault(x => x.ID == 6)
                                });
                            }
                        }
                    }
                    else
                    {
                        members = null;
                    }
                    //  UserCommitteePoco committeeManger = new UserCommitteePoco() { ID = userManager.ID, Phone = userManager.Phone, UserEmailId = userManager.UserEmailId, UserImage = userManager.UserImage, UserName = userManager.UserName, CommitteRole = db.Roles.FirstOrDefault(x => x.ID == 5) };
                    // UserCommitteePoco committeeSecrtary = new UserCommitteePoco() { ID = userSecratry.ID, UserName = userSecratry.UserName, Phone = userSecratry.Phone, UserEmailId = userSecratry.UserEmailId, UserImage = userSecratry.UserImage, CommitteRole = db.Roles.FirstOrDefault(x => x.ID == 4) };

                    CommitteeMeetingPoco committeDetails = new CommitteeMeetingPoco()
                    {
                        CommitteeId = decryptedcommitteeId,

                        CommitteeName           = cm.Committee.CommitteeName,
                        CommitteeTopic          = cm.Committee.CommitteeTopic,
                        CommitteeDependOn       = cm.Committee.CommitteeBasedOn,
                        CommitteeInbox          = cm.Committee.CommitteeInbox1,
                        CommitteeEnrollmentNum  = cm.Committee.CommitteeEnrollmentNumber,
                        CommitteeEnrollmentDate = cm.Committee.CommitteeEnrollmentDate,
                        Department = cm.Committee?.Department?.DeptName,
                        //   CommitteeManager = committeeManger,
                        // CommitteeSecretary = committeeSecrtary,
                        Activity   = cm.Committee.Activity,
                        Importance = cm.Committee.Importance,
                        Type       = cm.Committee.Type,
                        Members    = users.Where(x => x.ID != null).ToList(),

                        Meetings = meetings,
                    };

                    //MemberName=x.Member.MemberName,
                    //MemberTitle=x.Member.MemberTitle,
                    //MeetingId=x.Meeting.MeetingId,
                    //MeetingDate=x.Meeting.MeetingDate,
                    //MeetingAddress=x.Meeting.MeetingAddress

                    //List<MemberPoco> members = new List<MemberPoco>();
                    //List<MeetingPoco> meetings = new List<MeetingPoco>();
                    //List<object> container = new List<object>();
                    //string Milarty = "";
                    //string Important = "";
                    //foreach (var item in committeDetails)
                    //{
                    //    Milarty = item.Miltraized;
                    //    Important = item.Important;
                    //    members.Add(item.Member);
                    //    meetings.Add(item.Meeting);
                    //};
                    //container.Add(new { Miltraized = Milarty, Important = Important });
                    //// ss.Add(new { Important = Important });
                    //container.Add(new { Members = members });
                    //container.Add(new { Meetings = meetings });

                    return(Json(new { success = 1, error = obj, data = committeDetails }));
                }

                else
                {
                    Committee committee = db.Committees.FirstOrDefault(x => x.CommitteeId == decryptedcommitteeId);
                    if (committee != null)
                    {
                        try
                        {
                            userId = Convert.ToInt32(((ClaimsIdentity)User?.Identity).Claims?.FirstOrDefault(x => x.Type == "ID").Value);
                        }
                        // string _userName = System.Web.HttpContext.Current.User.Identity.Name;

                        catch (Exception ex)
                        {
                            return(Json(new { success = 0, error = "Invalid Token" }));
                        }

                        string commmitteManger   = db.Committees.FirstOrDefault(x => x.CommitteeId == decryptedcommitteeId).CommitteeManager;
                        string commmitteSecratry = db.Committees.FirstOrDefault(x => x.CommitteeId == decryptedcommitteeId).CommitteeSecretary;
                        int    mangId            = Convert.ToInt32(commmitteManger);
                        User   userManager       = db.Users.FirstOrDefault(x => x.ID == mangId);
                        int    secId             = Convert.ToInt32(commmitteSecratry);
                        User   userSecratry      = db.Users.FirstOrDefault(x => x.ID == secId);

                        CommitteeMeetingPoco committeDetails = new CommitteeMeetingPoco()
                        {
                            CommitteeId = decryptedcommitteeId,

                            CommitteeName           = committee.CommitteeName,
                            CommitteeTopic          = committee.CommitteeTopic,
                            CommitteeDependOn       = committee.CommitteeBasedOn,
                            CommitteeInbox          = committee.CommitteeInbox1,
                            CommitteeEnrollmentNum  = committee.CommitteeEnrollmentNumber,
                            CommitteeEnrollmentDate = committee.CommitteeEnrollmentDate,
                            Department = committee?.Department?.DeptName,
                            //   CommitteeManager = committeeManger,
                            // CommitteeSecretary = committeeSecrtary,
                            Activity   = committee.Activity,
                            Importance = committee.Importance,
                            Type       = committee.Type,
                            Members    = new List <UserCommitteePoco>(),

                            Meetings = new List <MeetingPoco>(),
                        };
                        return(Json(new { success = 1, error = obj, data = committeDetails }));
                    }
                    else
                    {
                        return(Json(new { success = 0, error = "Committee not found", data = obj }));
                    }
                }
            }
            catch (Exception ex)
            {
                return(Json(new { success = 0, error = ex.Message + ex.InnerException }));
            }
        }