private async Task <List <string> > GetLinks(long targetObjectID)
        {
            var links = new List <ObjectLinkPostViewModel>();

            using (var httpClient = new HttpClient())
            {
                var requestUri = $"{Configuration.DefaultAPI}/objectlinks/{targetObjectID}";
                httpClient.DefaultRequestHeaders.Add("CurrentUserID", CurrentUserID.ToString());
                httpClient.DefaultRequestHeaders.Add("CurrentHomeID", CurrentHomeID.ToString());

                using (var response = await httpClient.GetAsync(requestUri))
                {
                    string content = await response.Content.ReadAsStringAsync();

                    if (response.IsSuccessStatusCode)
                    {
                        links = JsonConvert.DeserializeObject <List <ObjectLinkPostViewModel> >(content);
                    }
                }
            }

            var result = ObjectLinksRenderer.BuildLinks(links);

            return(result);
        }
예제 #2
0
        public Result <int> DeleteContractModel(long id)
        {
            Result <int> result = new Result <int>();

            try
            {
                var model = DataOperateBusiness <Epm_Contract> .Get().GetModel(id);

                model.OperateUserId   = CurrentUserID.ToLongReq();
                model.OperateUserName = CurrentUserName;
                model.OperateTime     = DateTime.Now;
                model.DeleteTime      = DateTime.Now;

                //处理待办
                var temp = DataOperateBusiness <Epm_Approver> .Get().GetList(t => t.BusinessId == model.Id && t.IsApprover == false).FirstOrDefault();

                if (temp != null)
                {
                    ComplateApprover(temp.Id);
                }

                var rows = DataOperateBusiness <Epm_Contract> .Get().Delete(model);

                result.Data = rows;
                result.Flag = EResultFlag.Success;
                WriteLog(BusinessType.Contract.GetText(), SystemRight.Delete.GetText(), "删除: " + rows);
            }
            catch (Exception ex)
            {
                result.Data      = -1;
                result.Flag      = EResultFlag.Failure;
                result.Exception = new ExceptionEx(ex, "DeleteContractModel");
            }
            return(result);
        }
예제 #3
0
        /// <summary>
        /// 写审核日志
        /// </summary>
        /// <param name="model"></param>
        /// <param name="oldState"></param>
        /// <param name="newState"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        public virtual Result <Base_StatusLog> WriteStateLog(BaseModel model, string oldState, string newState)
        {
            Result <Base_StatusLog> result = new Result <Base_StatusLog>();

            try
            {
                Base_StatusLog log = new Base_StatusLog();
                log.OperateUserId   = CurrentUserID.ToLongReq();
                log.OperateUserName = CurrentUserName;
                log.OldState        = oldState;
                log.State           = newState;
                log.TableId         = model.Id;
                log.TableName       = model.GetType().Name;

                var rows = DataOperateBasic <Base_StatusLog> .Get().Add(log);

                result.Data = log;
                result.Flag = EResultFlag.Success;
            }
            catch (Exception ex)
            {
                result.Data      = null;
                result.Flag      = EResultFlag.Failure;
                result.Exception = new ExceptionEx(ex, "WriteStateLog");
            }
            return(result);
        }
        public async Task <IActionResult> PostLink(string targetObjectID, string[] objectBIDs, string[] objectLinkTypes)
        {
            var link = new ObjectLinkPostViewModel()
            {
                ObjectBID      = long.Parse(objectBIDs[0]),
                ObjectLinkType = objectLinkTypes[0],
                TargetObjectID = long.Parse(targetObjectID)
            };

            using (var httpClient = new HttpClient())
            {
                var requestUri = $"{Configuration.DefaultAPI}/objectlinks/post";
                httpClient.DefaultRequestHeaders.Add("CurrentUserID", CurrentUserID.ToString());
                httpClient.DefaultRequestHeaders.Add("CurrentHomeID", CurrentHomeID.ToString());

                using (var response = await httpClient.PostAsJsonAsync(requestUri, link))
                {
                    string content = await response.Content.ReadAsStringAsync();

                    if (response.IsSuccessStatusCode)
                    {
                        link = JsonConvert.DeserializeObject <ObjectLinkPostViewModel>(content);
                    }
                }
            }

            return(Json(ObjectLinksRenderer.BuildPostLink(link)));
        }
예제 #5
0
        /// <summary>
        /// 更新所有消息状态
        /// </summary>
        /// <param name="state"></param>
        /// <returns></returns>
        public Result <int> UpdateAllMassageState(long recId, bool state)
        {
            Result <int> result = new Result <int>();

            try
            {
                var list = DataOperateBusiness <Epm_Massage> .Get().GetList(p => p.RecId == recId && p.IsRead != state).ToList();

                foreach (var item in list)
                {
                    item.OperateUserId   = CurrentUserID.ToLongReq();
                    item.OperateUserName = CurrentUserName;
                    item.OperateTime     = DateTime.Now;
                    item.IsRead          = state;
                    item.ReadTime        = DateTime.Now;
                }

                var rows = DataOperateBusiness <Epm_Massage> .Get().UpdateRange(list);

                result.Data = rows;
                result.Flag = EResultFlag.Success;
            }
            catch (Exception ex)
            {
                result.Data      = -1;
                result.Flag      = EResultFlag.Failure;
                result.Exception = new ExceptionEx(ex, "UpdateAllMassageState");
            }
            return(result);
        }
        public async Task <IActionResult> PostEvent(string targetObjectID, string name, string description, string startdate, string enddate, string[] participants)
        {
            var @event = new EventPostViewModel()
            {
                HomeID             = (long)CurrentHomeID,
                Name               = name,
                Details            = description,
                StartDate          = DateTime.Parse(startdate),
                EndDate            = DateTime.Parse(enddate),
                ParticipantUserIDs = participants,
                TargetObjectID     = long.Parse(targetObjectID)
            };

            using (var httpClient = new HttpClient())
            {
                var requestUri = $"{Configuration.DefaultAPI}/events/post";
                httpClient.DefaultRequestHeaders.Add("CurrentUserID", CurrentUserID.ToString());
                httpClient.DefaultRequestHeaders.Add("CurrentHomeID", CurrentHomeID.ToString());

                using (var response = await httpClient.PostAsJsonAsync(requestUri, @event))
                {
                    string content = await response.Content.ReadAsStringAsync();

                    if (response.IsSuccessStatusCode)
                    {
                        @event = JsonConvert.DeserializeObject <EventPostViewModel>(content);
                    }
                }
            }

            return(Json(EventsRenderer.BuildPostEvent(@event)));
        }
예제 #7
0
        public async Task <IActionResult> Settings()
        {
            if (string.IsNullOrEmpty(HttpContext.Session.GetString("HomeID")))
            {
                return(RedirectToAction("Login", "Home"));
            }

            var settings = new HomeSettingPostViewModel();

            using (var httpClient = new HttpClient())
            {
                var requestUri = $"{Configuration.DefaultAPI}/{CurrentControllerName}/settings";
                httpClient.DefaultRequestHeaders.Add("CurrentUserID", CurrentUserID.ToString());
                httpClient.DefaultRequestHeaders.Add("CurrentHomeID", CurrentHomeID.ToString());

                using (var response = await httpClient.GetAsync(requestUri))
                {
                    string content = await response.Content.ReadAsStringAsync();

                    if (response.IsSuccessStatusCode)
                    {
                        settings = JsonConvert.DeserializeObject <HomeSettingPostViewModel>(content);
                    }
                }
            }

            if (settings != null)
            {
                return(View(settings));
            }

            return(View());
        }
예제 #8
0
        ///<summary>
        ///修改:
        ///</summary>
        /// <param name="model">要修改的model</param>
        /// <returns>受影响的行数</returns>
        public Result <int> UpdateMassage(Epm_Massage model)
        {
            Result <int> result = new Result <int>();

            try
            {
                Epm_Massage oldmodel = DataOperateBusiness <Epm_Massage> .Get().GetModel(model.Id);

                oldmodel.OperateUserId   = CurrentUserID.ToLongReq();
                oldmodel.OperateUserName = CurrentUserName;
                oldmodel.OperateTime     = DateTime.Now;
                oldmodel.IsRead          = model.IsRead;
                oldmodel.ReadTime        = model.ReadTime;

                var rows = DataOperateBusiness <Epm_Massage> .Get().Update(oldmodel);

                result.Data = rows;
                result.Flag = EResultFlag.Success;
            }
            catch (Exception ex)
            {
                result.Data      = -1;
                result.Flag      = EResultFlag.Failure;
                result.Exception = new ExceptionEx(ex, "UpdateMassage");
            }
            return(result);
        }
        public async Task <IActionResult> PostComment(long targetObjectID, string comment)
        {
            var result     = string.Empty;
            var theComment = new CommentPostViewModel()
            {
                Details        = comment,
                TargetObjectID = targetObjectID
            };

            using (var httpClient = new HttpClient())
            {
                var requestUri = $"{Configuration.DefaultAPI}/comments/post";
                httpClient.DefaultRequestHeaders.Add("CurrentUserID", CurrentUserID.ToString());
                httpClient.DefaultRequestHeaders.Add("CurrentHomeID", CurrentHomeID.ToString());

                using (var response = await httpClient.PostAsJsonAsync(requestUri, theComment))
                {
                    string content = await response.Content.ReadAsStringAsync();

                    if (response.IsSuccessStatusCode)
                    {
                        result = content;
                    }
                }
            }

            return(Json(result));
        }
예제 #10
0
        public async Task <IActionResult> Settings(HomeSettingPostViewModel settings)
        {
            if (settings.RentDueDateDay <= 0 || settings.RentDueDateDay >= 28)
            {
                ModelState.AddModelError("RentDueDateDay", "Rent due date day value can only be between 1 and 27, included.");
                return(View(settings));
            }

            using (var httpClient = new HttpClient())
            {
                var requestUri = $"{Configuration.DefaultAPI}/{CurrentControllerName}/settings";
                httpClient.DefaultRequestHeaders.Add("CurrentUserID", CurrentUserID.ToString());
                httpClient.DefaultRequestHeaders.Add("CurrentHomeID", CurrentHomeID.ToString());

                using (var response = await httpClient.PostAsJsonAsync(requestUri, settings))
                {
                    var content = await response.Content.ReadAsStringAsync();

                    if (response.IsSuccessStatusCode)
                    {
                        settings = JsonConvert.DeserializeObject <HomeSettingPostViewModel>(content);

                        if (settings.ChangeHttpSession)
                        {
                            HttpContext.Session.SetString("HomeName", settings.HomeName);
                        }
                    }
                }
            }

            return(RedirectToAction(nameof(Index)));
        }
예제 #11
0
        /// <summary>
        /// 增加代办记录
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public Result <int> AddApproverRecord(Epm_ApproverRecord model)
        {
            Result <int> result = new Result <int>();

            try
            {
                model.CrtCompanyId    = CurrentCompanyID.ToLongReq();
                model.CrtCompanyName  = CurrentCompanyName;
                model.CreateUserId    = CurrentUserID.ToLongReq();
                model.CreateUserName  = CurrentUserName;
                model.CreateTime      = DateTime.Now;
                model.OperateUserId   = CurrentUserID.ToLongReq();
                model.OperateUserName = CurrentUserName;
                model.OperateTime     = DateTime.Now;
                model.IsDelete        = false;

                var rows = DataOperateBusiness <Epm_ApproverRecord> .Get().Add(model);

                result.Data = rows;
                result.Flag = EResultFlag.Success;
                WriteLog(BusinessType.Approver.GetText(), SystemRight.Add.GetText(), "新增: " + model.Id);
            }
            catch (Exception ex)
            {
                result.Data      = -1;
                result.Flag      = EResultFlag.Failure;
                result.Exception = new ExceptionEx(ex, "AddApproverRecord");
            }
            return(result);
        }
        public async Task <IActionResult> Edit(long ID, U model)
        {
            if (ID != model.ID)
            {
                return(new Error404NotFoundViewResult());
            }

            if (ModelState.IsValid)
            {
                using (var httpClient = new HttpClient())
                {
                    var requestUri = $"{Configuration.DefaultAPI}/home/{CurrentHomeID}/{CurrentAreaName}/createedit";
                    httpClient.DefaultRequestHeaders.Add("CurrentUserID", CurrentUserID.ToString());
                    httpClient.DefaultRequestHeaders.Add("CurrentHomeID", CurrentHomeID.ToString());

                    using (var response = await httpClient.PostAsJsonAsync(requestUri, model))
                    {
                        var content = await response.Content.ReadAsStringAsync();

                        if (response.IsSuccessStatusCode)
                        {
                            return(RedirectToAction(nameof(Index)));
                        }
                        else
                        {
                            return(View("_Edit", model));
                        }
                    }
                }
            }

            return(View("_Edit", model));
        }
예제 #13
0
        /// <summary>
        /// 更新状态
        /// </summary>
        /// <param name="id"></param>
        /// <param name="state"></param>
        /// <returns></returns>
        public Result <int> UpdateTrainState(long id, string state)
        {
            Result <int> result = new Result <int>();

            try
            {
                var model = DataOperateBusiness <Epm_Train> .Get().GetModel(id);

                if (model != null)
                {
                    model.OperateUserId   = CurrentUserID.ToLongReq();
                    model.OperateUserName = CurrentUserName;
                    model.OperateTime     = DateTime.Now;
                    model.State           = (int)state.ToEnumReq <ConfirmState>();
                    var rows = DataOperateBusiness <Epm_Train> .Get().Update(model);

                    result.Data = rows;
                    result.Flag = EResultFlag.Success;

                    WriteLog(BusinessType.Change.GetText(), SystemRight.Delete.GetText(), "更新状态: " + rows);
                }
                else
                {
                    throw new Exception("id有误");
                }
            }
            catch (Exception ex)
            {
                result.Data      = -1;
                result.Flag      = EResultFlag.Failure;
                result.Exception = new ExceptionEx(ex, "UpdateState");
            }
            return(result);
        }
        public MainWindowViewModel()
        {
            MainPage = "HomePage.xaml";
            DBRepository <User> dBRepository = new DBRepository <User>(new BuildEntities());
            User user = dBRepository.GetAll().Where(s => s.ID_User == CurrentUserID.getInstance().ID).First();

            LoginCurrenUser = user.Login;
            if (user.Language == null || user.Language == "English")
            {
                ResourceDictionary resourceDict = Application.LoadComponent(new Uri("/Resources/EngLanguage.xaml", UriKind.RelativeOrAbsolute)) as ResourceDictionary;
                Application.Current.Resources.MergedDictionaries.Add(resourceDict);
            }
            else
            {
                ResourceDictionary resourceDict = Application.LoadComponent(new Uri("/Resources/RuLanguage.xaml", UriKind.RelativeOrAbsolute)) as ResourceDictionary;
                Application.Current.Resources.MergedDictionaries.Add(resourceDict);
            }
            if (user.Them == null || user.Them == "Default")
            {
                ResourceDictionary resourceDict = Application.LoadComponent(new Uri("/Resources/DefaultThem.xaml", UriKind.RelativeOrAbsolute)) as ResourceDictionary;
                Application.Current.Resources.MergedDictionaries.Add(resourceDict);
            }
            else
            {
                ResourceDictionary resourceDict = Application.LoadComponent(new Uri("/Resources/BlackThem.xaml", UriKind.RelativeOrAbsolute)) as ResourceDictionary;
                Application.Current.Resources.MergedDictionaries.Add(resourceDict);
            }
            FirstCharLoginCurrenUser = user.Name.ToUpper().First().ToString() + user.Surname.ToUpper().First().ToString();
            dBRepository.Dispose();
        }
예제 #15
0
        ///<summary>
        ///获取列表:
        ///</summary>
        /// <param name="qc">查询条件</param>
        /// <returns>符合条件的数据集合</returns>
        public Result<List<Epm_Visa>> GetVisaList(string projectName, string title, int state, string visaTypeName, int pageIndex, int pageSize)
        {
            Result<List<Epm_Visa>> result = new Result<List<Epm_Visa>>();
            try
            {
                var currentUserID = CurrentUserID.ToLongReq();
                int statu = (int)ApprovalState.Enabled;
                var query = from b in context.Epm_Visa.Where(p => p.IsDelete == false)
                            where CurrentProjectIds.Contains(b.ProjectId.ToString())
                        && (b.ProjectName.Contains(projectName) || string.IsNullOrEmpty(projectName))
                        && (b.VisaTypeName.Contains(visaTypeName) || string.IsNullOrEmpty(visaTypeName))
                        && (b.VisaTitle.Contains(title) || string.IsNullOrEmpty(title))
                        && (b.State == state || state == -1)
                        && ((b.State == statu && b.CreateUserId == currentUserID) || b.State != statu)
                            select b;
                //query = query.Distinct();

                int count = query.Count();
                int skip = (pageIndex - 1) * pageSize;
                int take = pageSize;

                var list = query.OrderByDescending(p => p.OperateTime).Skip(skip).Take(take).ToList();
                result.Data = list;
                result.AllRowsCount = count;
                result.Flag = EResultFlag.Success;
            }
            catch (Exception ex)
            {
                result.Data = null;
                result.Flag = EResultFlag.Failure;
                result.Exception = new ExceptionEx(ex, "GetVisaList");
            }
            return result;
        }
예제 #16
0
        /// <summary>
        /// 添加问题关联模型
        /// </summary>
        /// <param name="model"></param>
        /// <param name="componentIds"></param>
        /// <returns></returns>
        public Result <int> AddQuestionBIM(Epm_QuestionBIM model, string componentIds)
        {
            Result <int> result = new Result <int>();

            try
            {
                if (!string.IsNullOrEmpty(componentIds))
                {
                    //首先删除同一模型同一检查详情下的所有模型组件
                    var componentList = DataOperateBusiness <Epm_QuestionBIM> .Get().GetList(i => i.QuestionId == model.QuestionId && i.BIMId == model.BIMId).ToList();

                    if (componentList.Count > 0)
                    {
                        foreach (var item in componentList)
                        {
                            item.OperateUserId   = CurrentUserID.ToLongReq();
                            item.OperateUserName = CurrentUserName;
                            item.OperateTime     = DateTime.Now;
                            item.DeleteTime      = DateTime.Now;
                        }
                        DataOperateBusiness <Epm_QuestionBIM> .Get().DeleteRange(componentList);
                    }

                    //获取组件ID集合
                    var componentIdList             = componentIds.SplitString(",");
                    List <Epm_QuestionBIM> dataList = new List <Epm_QuestionBIM>();
                    foreach (var item in componentIdList)
                    {
                        Epm_QuestionBIM temp = new Epm_QuestionBIM();
                        temp = base.SetCurrentUser(temp);
                        temp.CrtCompanyId   = CurrentCompanyID.ToLongReq();
                        temp.CrtCompanyName = CurrentCompanyName;

                        temp.QuestionId  = model.QuestionId;
                        temp.BIMId       = model.BIMId;
                        temp.BIMName     = model.BIMName;
                        temp.ComponentId = item;
                        dataList.Add(temp);
                    }
                    //批量添加问题管理关联模型
                    var rows = DataOperateBusiness <Epm_QuestionBIM> .Get().AddRange(dataList);

                    result.Data = rows;
                    result.Flag = EResultFlag.Success;
                    WriteLog(BusinessType.Plan.GetText(), SystemRight.Add.GetText(), "新增:添加问题关联模型 " + model.Id);
                }
                else
                {
                    throw new Exception("没有选择关联组件,请选择要关联的组件!");
                }
            }
            catch (Exception ex)
            {
                result.Data      = -1;
                result.Flag      = EResultFlag.Failure;
                result.Exception = new ExceptionEx(ex, "AddQuestionBIM");
            }
            return(result);
        }
예제 #17
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public Result <int> DeleteDangerousWork(long id)
        {
            Result <int> result = new Result <int>();

            try
            {
                var model = DataOperateBusiness <Epm_DangerousWork> .Get().GetModel(id);

                model.IsDelete   = true;
                model.DeleteTime = DateTime.Now;

                //处理待办
                var temp = DataOperateBusiness <Epm_Approver> .Get().GetList(t => t.BusinessId == model.Id && t.IsApprover == false).FirstOrDefault();

                if (temp != null)
                {
                    ComplateApprover(temp.Id);
                }

                #region 消息
                var waitSend = GetWaitSendMessageList(model.ProjectId.Value);
                foreach (var send in waitSend)
                {
                    Epm_Massage modelMsg = new Epm_Massage();
                    modelMsg.ReadTime     = null;
                    modelMsg.RecId        = send.Key;
                    modelMsg.RecName      = send.Value;
                    modelMsg.RecTime      = DateTime.Now;
                    modelMsg.SendId       = CurrentUserID.ToLongReq();
                    modelMsg.SendName     = CurrentUserName;
                    modelMsg.SendTime     = DateTime.Now;
                    modelMsg.Title        = CurrentUserName + "提报的危险作业单已删除";
                    modelMsg.Content      = CurrentUserName + "提报的危险作业单已删除";
                    modelMsg.Type         = 2;
                    modelMsg.IsRead       = false;
                    modelMsg.BussinessId  = model.Id;
                    modelMsg.BussinesType = BusinessType.Dangerous.ToString();
                    modelMsg.ProjectId    = model.ProjectId;
                    modelMsg.ProjectName  = model.ProjectName;
                    modelMsg = base.SetCurrentUser(modelMsg);
                    modelMsg = base.SetCreateUser(modelMsg);
                    DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg);
                }
                #endregion

                var rows = DataOperateBusiness <Epm_DangerousWork> .Get().Delete(model);

                result.Data = rows;
                result.Flag = EResultFlag.Success;
                WriteLog(BusinessType.Dangerous.GetText(), SystemRight.Delete.GetText(), "删除: " + rows);
            }
            catch (Exception ex)
            {
                result.Data      = -1;
                result.Flag      = EResultFlag.Failure;
                result.Exception = new ExceptionEx(ex, "DeleteDangerousWork");
            }
            return(result);
        }
예제 #18
0
        protected void UploadUpdate_Click(object sender, System.EventArgs e)
        {
            if (File.PostedFile != null && File.PostedFile.FileName.Trim().Length > 0 && File.PostedFile.ContentLength > 0)
            {
                int    width              = SueetieConfiguration.Get().AvatarSettings.Width;
                int    height             = SueetieConfiguration.Get().AvatarSettings.Height;
                int    thumbnailWidth     = SueetieConfiguration.Get().AvatarSettings.ThumbnailHeight;
                int    thumbnailHeight    = SueetieConfiguration.Get().AvatarSettings.ThumbnailWidth;
                string imageName          = CurrentUserID.ToString() + ".jpg";
                string thumbnailImageName = CurrentUserID.ToString() + "t.jpg";

                ImageFormat imgFormat = ImageFormat.Jpeg;

                try
                {
                    #region Save to disk

                    Bitmap originalBitmap = new Bitmap(File.PostedFile.InputStream);
                    //ImageHelper.CalculateOptimizedWidthAndHeight(originalBitmap, out width, out height);

                    int    jpegQuality = SueetieConfiguration.Get().AvatarSettings.ImageQuality;
                    string path        = HttpContext.Current.Server.MapPath("/") + SueetieConfiguration.Get().AvatarSettings.AvatarFolderPath;

                    ImageHelper.SaveImageFile(originalBitmap, path + imageName, imgFormat, width, height, jpegQuality);
                    ImageHelper.SaveImageFile(originalBitmap, path + thumbnailImageName, imgFormat, thumbnailWidth, thumbnailHeight, jpegQuality);

                    #endregion

                    #region Save to database for use with Forums

                    SueetieUserAvatar sueetieUserAvatar = new SueetieUserAvatar();

                    MemoryStream stream = new MemoryStream();
                    originalBitmap.Save(stream, ImageFormat.Bmp);

                    byte[] data = new byte[stream.Length];
                    stream.Seek(0, System.IO.SeekOrigin.Begin);
                    stream.Read(data, 0, (int)stream.Length);

                    sueetieUserAvatar.UserID          = CurrentUserID;
                    sueetieUserAvatar.AvatarImage     = data;
                    sueetieUserAvatar.AvatarImageType = "image/jpeg";

                    SueetieUsers.UpdateSueetieUserAvatar(sueetieUserAvatar);
                    SueetieUsers.ClearUserCache(sueetieUserAvatar.UserID);

                    //Response.Redirect("myaccountinfo.aspx?av=1&bio=2&pr=2&pw=2");
                    Response.Redirect("myaccountinfo.aspx?av=1");
                    #endregion
                }
                catch
                {
                    //return null;
                }
            }

            BindData();
        }
예제 #19
0
        ///<summary>
        ///获取列表:
        ///</summary>
        /// <param name="qc">查询条件</param>
        /// <returns>符合条件的数据集合</returns>
        public Result <List <ChangeView> > GetChangeList(string projectName, string name, int state, int pageIndex, int pageSize)
        {
            Result <List <ChangeView> > result = new Result <List <ChangeView> >();

            try
            {
                var currentUserID = CurrentUserID.ToLongReq();
                int statu         = (int)ApprovalState.Enabled;
                var query         = from b in context.Epm_Change.Where(p => p.IsDelete == false)
                                    where CurrentProjectIds.Contains(b.ProjectId.ToString()) &&
                                    (b.ProjectName.Contains(projectName) || string.IsNullOrEmpty(projectName)) &&
                                    (b.ChangeName.Contains(name) || string.IsNullOrEmpty(name)) &&
                                    (b.State == state || state == -1) &&
                                    ((b.State == statu && b.CreateUserId == currentUserID) || b.State != statu)
                                    select b;

                int count = query.Count();
                int skip  = (pageIndex - 1) * pageSize;
                int take  = pageSize;

                var list = query.OrderByDescending(p => p.OperateTime).Skip(skip).Take(take).Select(chang =>
                                                                                                    new ChangeView
                {
                    Id              = chang.Id,
                    TotalAmount     = chang.TotalAmount,
                    AddAmount       = chang.AddAmount,
                    ReduceAmount    = chang.ReduceAmount,
                    ChangeAmount    = chang.ChangeAmount,
                    ChangeContent   = chang.ChangeContent,
                    ChangeDays      = chang.ChangeDays,
                    ChangeName      = chang.ChangeName,
                    ChangeNo        = chang.ChangeNo,
                    ChangeReason    = chang.ChangeReason,
                    ChangeStartTime = chang.ChangeStartTime,
                    ChangeEndTime   = chang.ChangeEndTime,
                    ProjectId       = chang.ProjectId,
                    ProjectName     = chang.ProjectName,
                    Remark          = chang.Remark,
                    State           = chang.State,
                    SubmitUserId    = chang.SubmitUserId,
                    SubmitUserName  = chang.SubmitUserName,
                    CreateTime      = chang.CreateTime,
                    CrtCompanyName  = chang.CrtCompanyName
                }).ToList();

                result.Data         = list;
                result.AllRowsCount = count;
                result.Flag         = EResultFlag.Success;
            }
            catch (Exception ex)
            {
                result.Data      = null;
                result.Flag      = EResultFlag.Failure;
                result.Exception = new ExceptionEx(ex, "GetChangeList");
            }
            return(result);
        }
예제 #20
0
        protected void DeleteAvatar_Click(object sender, System.EventArgs e)
        {
            SueetieUsers.DeleteAvatar(CurrentUserID);
            string path = HttpContext.Current.Server.MapPath("/") + SueetieConfiguration.Get().AvatarSettings.AvatarFolderPath +
                          CurrentUserID.ToString() + ".jpg";

            System.IO.File.Delete(path);
            SueetieUsers.ClearUserCache(CurrentUserID);
            Response.Redirect("myaccountinfo.aspx?dv=1&bio=2");
            //BindData();
        }
예제 #21
0
        public async Task <IActionResult> Index()
        {
            if (string.IsNullOrEmpty(HttpContext.Session.GetString("UserID")))
            {
                return(RedirectToAction("Login", "Account"));
            }

            if (string.IsNullOrEmpty(HttpContext.Session.GetString("HomeID")))
            {
                return(RedirectToAction("Login"));
            }

            var model  = new HomePageDisplayModel();
            var status = new HomeStatusPostViewModel();

            using (var httpClient = new HttpClient())
            {
                var requestUri = $"{Configuration.DefaultAPI}/{CurrentControllerName}/page";
                httpClient.DefaultRequestHeaders.Add("CurrentUserID", CurrentUserID.ToString());
                httpClient.DefaultRequestHeaders.Add("CurrentHomeID", CurrentHomeID.ToString());

                using (var response = await httpClient.GetAsync(requestUri))
                {
                    string content = await response.Content.ReadAsStringAsync();

                    if (response.IsSuccessStatusCode)
                    {
                        model = JsonConvert.DeserializeObject <HomePageDisplayModel>(content);
                    }
                }
            }

            using (var httpClient = new HttpClient())
            {
                var requestUri = $"{Configuration.DefaultAPI}/{CurrentControllerName}/status";
                httpClient.DefaultRequestHeaders.Add("CurrentUserID", CurrentUserID.ToString());
                httpClient.DefaultRequestHeaders.Add("CurrentHomeID", CurrentHomeID.ToString());

                using (var response = await httpClient.GetAsync(requestUri))
                {
                    string content = await response.Content.ReadAsStringAsync();

                    if (response.IsSuccessStatusCode)
                    {
                        status = JsonConvert.DeserializeObject <HomeStatusPostViewModel>(content);
                    }
                }
            }

            model.HomeStatus     = status;
            ViewData["Username"] = CurrentUserName;

            return(View(model));
        }
예제 #22
0
        /// <summary>
        /// 修改数据时,保留创建人,创建时间不变,修改操作人和操作时间
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="oldModel">原数据</param>
        /// <param name="newModel">要修改的新数据</param>
        /// <returns></returns>
        public T FiterUpdate <T>(T oldModel, T newModel) where T : BaseBusiness
        {
            newModel.CreateUserId   = oldModel.CreateUserId;
            newModel.CreateUserName = oldModel.CreateUserName;
            newModel.CreateTime     = oldModel.CreateTime;

            newModel.OperateUserId   = CurrentUserID.ToLongReq();
            newModel.OperateUserName = CurrentUserName;
            newModel.OperateTime     = DateTime.Now;
            return(newModel);
        }
예제 #23
0
        public async Task <JsonResult> GetHomeStatus()
        {
            var result = string.Empty;

            if (!string.IsNullOrEmpty(HttpContext.Session.GetString("HomeID")))
            {
                var status = new HomeStatusPostViewModel();
                var user   = new UserPostViewModel();

                using (var httpClient = new HttpClient())
                {
                    var requestUri = $"{Configuration.DefaultAPI}/{CurrentControllerName}/status";
                    httpClient.DefaultRequestHeaders.Add("CurrentUserID", CurrentUserID.ToString());
                    httpClient.DefaultRequestHeaders.Add("CurrentHomeID", CurrentHomeID.ToString());

                    using (var response = await httpClient.GetAsync(requestUri))
                    {
                        string content = await response.Content.ReadAsStringAsync();

                        if (response.IsSuccessStatusCode)
                        {
                            status = JsonConvert.DeserializeObject <HomeStatusPostViewModel>(content);
                        }
                    }
                }

                if (status.ID > 0)
                {
                    using (var httpClient = new HttpClient())
                    {
                        var requestUri = $"{Configuration.DefaultAPI}/users/{status.UserID}";
                        httpClient.DefaultRequestHeaders.Add("CurrentUserID", CurrentUserID.ToString());
                        httpClient.DefaultRequestHeaders.Add("CurrentHomeID", CurrentHomeID.ToString());

                        using (var response = await httpClient.GetAsync(requestUri))
                        {
                            string content = await response.Content.ReadAsStringAsync();

                            if (response.IsSuccessStatusCode)
                            {
                                user = JsonConvert.DeserializeObject <UserPostViewModel>(content);
                            }
                        }
                    }

                    result = $"{status.Status};{user.Name};{status.Details}";
                    return(Json(result));
                }
            }

            result = $"1;system_generated;No one has set a status yet!";
            return(Json(result));
        }
예제 #24
0
        public async Task <IActionResult> Login(HomePostViewModel home)
        {
            home.ConfirmPassword = home.Password;
            ModelState.Clear();

            if (string.IsNullOrEmpty(home.Name))
            {
                ModelState.AddModelError("Name", "Home name field is required.");
            }
            else if (string.IsNullOrEmpty(home.Password))
            {
                ModelState.AddModelError("Password", "Password field is required.");
            }
            else
            {
                using (var httpClient = new HttpClient())
                {
                    var requestUri = $"{Configuration.DefaultAPI}/{CurrentControllerName}/{nameof(Login)}";
                    httpClient.DefaultRequestHeaders.Add("CurrentUserID", CurrentUserID.ToString());

                    using (var response = await httpClient.PostAsJsonAsync(requestUri, home))
                    {
                        var content = await response.Content.ReadAsStringAsync();

                        if (response.IsSuccessStatusCode)
                        {
                            home = JsonConvert.DeserializeObject <HomePostViewModel>(content);

                            if (home != null)
                            {
                                HttpContext.Session.SetString("HomeID", home.ID.ToString());
                                HttpContext.Session.SetString("HomeName", home.Name.ToString());

                                await SetUserToCurrentHome(home.ID);

                                return(RedirectToAction("Index", "Home"));
                            }
                            else
                            {
                                ModelState.AddModelError("", "Home name or password is wrong.");
                            }
                        }
                        else
                        {
                            ModelState.AddModelError("", "Home name or password is wrong.");
                        }
                    }
                }
            }

            return(View());
        }
예제 #25
0
        public async Task SetUserToCurrentHome(long homeID)
        {
            using (var httpClient = new HttpClient())
            {
                var requestUri = $"{Configuration.DefaultAPI}/{CurrentControllerName}/homeuser";
                httpClient.DefaultRequestHeaders.Add("CurrentUserID", CurrentUserID.ToString());
                httpClient.DefaultRequestHeaders.Add("CurrentHomeID", homeID.ToString());

                using (var response = await httpClient.PostAsJsonAsync(requestUri, new { }))
                {
                }
            }
        }
        public async Task <ActionResult> DeleteImage(long ID)
        {
            var image = new ImagePostViewModel();

            using (var httpClient = new HttpClient())
            {
                var requestUri = $"{Configuration.DefaultAPI}/images/image/{ID}";
                httpClient.DefaultRequestHeaders.Add("CurrentUserID", CurrentUserID.ToString());
                httpClient.DefaultRequestHeaders.Add("CurrentHomeID", CurrentHomeID.ToString());

                using (var response = await httpClient.GetAsync(requestUri))
                {
                    string content = await response.Content.ReadAsStringAsync();

                    if (response.IsSuccessStatusCode)
                    {
                        image = JsonConvert.DeserializeObject <ImagePostViewModel>(content);
                    }
                }
            }

            if (image == null)
            {
                return(Json(new { success = false, message = "404: Image does not exist." }));
            }
            else
            {
                return(Json(new { success = false, message = "404: Image does not exist." }));

                // TODO: This here needs to send request to API
                // Also, make sure directory path is outside of wwwroot
                //if (Directory.Exists(ImagesPath))
                //{
                //    var di = new DirectoryInfo(ImagesPath);
                //    foreach (var file in di.GetFiles())
                //    {
                //        if (file.Name == image.Name)
                //        {
                //            file.Delete();
                //            break;
                //        }
                //    }

                //    BaseWebService.Delete(image);

                //    return Json(new { success = true, message = "Image deleted successfully." });
                //}
                //else
                //    return Json(new { success = false, message = "404: Images path does not exist." });
            }
        }
예제 #27
0
 public static bool CheckLogin()
 {
     if (CurrentUserID.IsEmptyGuid())
     {
         if (Config.IsUse)
         {
             HttpContext.Current.Response.Cookies.Add(new HttpCookie("LastURL", HttpContext.Current.Request.Url.PathAndQuery));
             string url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + Config.CorpID + "&redirect_uri=" + Config.GetAccountUrl + "&response_type=code&scope=snsapi_base&state=a#wechat_redirect";
             HttpContext.Current.Response.Redirect(url);
         }
         return(false);
     }
     return(true);
 }
예제 #28
0
        /// <summary>
        /// 根据项目获取需要发送消息通知的用户Id和用户名称
        /// </summary>
        /// <param name="projectId"></param>
        /// <returns></returns>
        private Dictionary <long, string> GetWaitSendMessageList(long?projectId)
        {
            Dictionary <long, string> dic = new Dictionary <long, string>();
            var project = DataOperateBusiness <Epm_Project> .Get().GetModel(projectId.Value);

            if (project != null)
            {
                //项目经理
                if (project.PMId != null && project.PMId != CurrentUserID.ToLongReq())
                {
                    if (!dic.Keys.Contains(project.PMId.Value))
                    {
                        dic.Add(project.PMId.Value, project.PMName);
                    }
                }
                //分公司项目负责人
                if (project.ContactUserId != null && project.ContactUserId != CurrentUserID.ToLongReq())
                {
                    if (!dic.Keys.Contains(project.ContactUserId.Value))
                    {
                        dic.Add(project.ContactUserId.Value, project.ContactUserName);
                    }
                }
            }
            var projectCompany = DataOperateBusiness <Epm_ProjectCompany> .Get().GetList(t => t.ProjectId == projectId).ToList();

            //List<Base_User> allUser = DataOperateBasic<Base_User>.Get().GetList().ToList();
            //服务商 项目经理 和负责人
            if (projectCompany.Count > 0)
            {
                foreach (var item in projectCompany)
                {
                    //var users = allUser.Where(t => t.Id == item.PMId || t.Id == item.LinkManId).ToList();
                    //foreach (var user in users)
                    //{
                    //    if (user.Id != CurrentUserID.ToLongReq() && !dic.Keys.Contains(user.Id))
                    //        dic.Add(user.Id, user.UserName);
                    //}
                    if (item.LinkManId.HasValue)
                    {
                        if (!dic.Keys.Contains(item.LinkManId.Value))
                        {
                            dic.Add(item.LinkManId.Value, item.LinkMan);
                        }
                    }
                }
            }
            return(dic);
        }
예제 #29
0
        protected void InitData()
        {
            Query = "&appid=" + Request.QueryString["appid"] + "&tabid=" + Request.QueryString["tabid"] + "&dirid=" + DirID
                    + "&title1=" + stitle.UrlEncode() + "&date1=" + sdate1 + "&date2=" + sdate2;
            Query1 = Query + "&pagesize=" + Request.QueryString["pagesize"] + "&pagenumber=" + Request.QueryString["pagenumber"];
            string pager;
            string dirIdString = "";

            if (DirID.IsGuid())
            {
                dirIdString = new RoadFlow.Platform.DocumentDirectory().GetAllChildIdString(DirID.ToGuid(), CurrentUserID);
            }
            DocDt = Doc.GetList(out pager, dirIdString, CurrentUserID.ToString(), Query, stitle, sdate1, sdate2, false);
            this.PagerText.Text = pager;
        }
        protected virtual async Task PopulateViewData(U model)
        {
            var users = await GetUsersInCurrentHome();

            var usersSelectList = users.Select(x => new SelectListItem()
            {
                Text = x.Name, Value = x.ID.ToString()
            }).ToList();

            ViewData["UsersSelectList"] = usersSelectList;

            // TODO: Brainstorm on more object link types...
            var objectLinkTypesSelectList = new List <SelectListItem>()
            {
                new SelectListItem()
                {
                    Text = "relates to", Value = "relates to", Selected = true
                }
            };

            ViewData["ObjectLinkTypeSelectList"] = objectLinkTypesSelectList;

            var objects = new List <BusinessObjectDisplayViewModel>();

            using (var httpClient = new HttpClient())
            {
                var requestUri = $"{Configuration.DefaultAPI}/home/objects/{model.ObjectID}";
                httpClient.DefaultRequestHeaders.Add("CurrentUserID", CurrentUserID.ToString());
                httpClient.DefaultRequestHeaders.Add("CurrentHomeID", CurrentHomeID.ToString());

                using (var response = await httpClient.GetAsync(requestUri))
                {
                    string content = await response.Content.ReadAsStringAsync();

                    if (response.IsSuccessStatusCode)
                    {
                        objects = JsonConvert.DeserializeObject <List <BusinessObjectDisplayViewModel> >(content);
                    }
                }
            }

            var objectsSelectList = objects.Select(x => new SelectListItem()
            {
                Text = x.Name, Value = x.ObjectID.ToString()
            }).ToList();

            ViewData["ObjectBIDSelectList"] = objectsSelectList;
        }