示例#1
0
        public async Task <IActionResult> Edit(int id, [Bind("ProjectRecordId,DoneUserId,Point,ProjectId,WorkUserId")] ProjectRecord projectRecord)
        {
            if (id != projectRecord.ProjectRecordId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(projectRecord);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ProjectRecordExists(projectRecord.ProjectRecordId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Index"));
            }
            ViewData["DoneUserId"] = new SelectList(_context.Users, "Id", "Id", projectRecord.DoneUserId);
            ViewData["ProjectId"]  = new SelectList(_context.Project, "ProjectId", "ProjectId", projectRecord.ProjectId);
            ViewData["WorkUserId"] = new SelectList(_context.Users, "Id", "Id", projectRecord.WorkUserId);
            return(View(projectRecord));
        }
        public ProjectRecord Save(ProjectRecord record)
        {
            var entry = _db.Projects.Add(record);

            _db.SaveChanges();
            return(entry.Entity);
        }
示例#3
0
        public ActionResult commitSoluComment()
        {
            ProjectRecord projectRecord = new ProjectRecord();

            projectRecord.pRContent = Request.Form["pRContent"];
            projectRecord.pRComment = Request.Form["pRComment"];
            if (Request.Form["options"] == "0")
            {
                //最家方案
                projectRecord.pRIfSuccess = true;
                JsonResult["boo_success"] = 0;
            }
            else
            {
                //方案不合
                JsonResult["boo_success"] = 1;
            }
            projectRecord.pRTime         = DateTime.Now;
            projectRecord.pRUserId       = loginUser.userId;
            projectRecord.userId         = Convert.ToInt64(Request.Form["userId"]);
            projectRecord.userCommentNum = 0;
            projectRecord.userLoveNum    = 0;

            if (_projectRecordService.addRrojectRecord(projectRecord))
            {
                return(Json(JsonResult));
            }
            else
            {
                JsonResult["boo_success"] = false;
                return(Json(JsonResult));
            }
        }
示例#4
0
 public ProjectDto(ProjectRecord record, bool belongsToUser, bool isFavourite)
 {
     Id            = record.Id;
     UserId        = record.UserId;
     Title         = record.Title;
     Colour        = record.Colour;
     BelongsToUser = belongsToUser;
     IsFavourite   = isFavourite;
 }
示例#5
0
        public async Task <IActionResult> MarkNow([FromForm] string TargetUserId, object obj)
        {
            //System Validate
            if (!ModelState.IsValid)
            {
                return(RedirectToAction(nameof(MarkNow)));
            }
            //Target Validate
            var _cuser = await GetCurrentUserAsync();

            var _targetuser = await _context.Users.Include(t => t.UserType).SingleOrDefaultAsync(t => t.Id == TargetUserId);

            if (_targetuser == null)
            {
                return(NotFound());
            }
            if (!_targetuser.UserType.AvaliableToMark)
            {
                return(Unauthorized());
            }

            //Start Logic
            var _toDelete = _context.ProjectRecord.Where(t => t.DoneUserId == _targetuser.Id && t.WorkUserId == _cuser.Id);

            _context.ProjectRecord.RemoveRange(_toDelete);
            await _context.SaveChangesAsync();

            var _tempList = new List <ProjectRecord>();
            int QuestId   = 0;

            foreach (var Pair in HttpContext.Request.Form)
            {
                if (int.TryParse(Pair.Key, out QuestId))
                {
                    var TargetQuest = await _context.Project.SingleOrDefaultAsync(t => t.ProjectId == QuestId);

                    var _tempRecord = new ProjectRecord
                    {
                        WorkUserId = _cuser.Id,
                        DoneUserId = _targetuser.Id,
                        Point      = Convert.ToDouble(Pair.Value.ToString()),
                        ProjectId  = QuestId,
                    };
                    _tempList.Add(_tempRecord);
                }
            }

            _context.ProjectRecord.AddRange(_tempList);
            await _context.SaveChangesAsync();

            var questions = _context.Project;

            return(RedirectToAction(nameof(Mark)));
        }
示例#6
0
        public int Save(int ProjectID, string RecordContent, string MoldNumber)
        {
            ProjectRecord _dbEntry = new ProjectRecord();

            _dbEntry.ProjectID     = ProjectID;
            _dbEntry.RecordDate    = DateTime.Now;
            _dbEntry.RecordContent = ReplaceHtmlTag(RecordContent);
            _dbEntry.MoldNumber    = MoldNumber;
            _context.ProjectRecords.Add(_dbEntry);
            _context.SaveChanges();
            return(_dbEntry.ProjectRecordID);
        }
示例#7
0
 public bool addRrojectRecord(ProjectRecord projectRecord)
 {
     try
     {
         _projectRecordRepository.Add(projectRecord);
         return(true);
     }
     catch
     {
         return(false);
     }
 }
示例#8
0
 public bool updateProjectRecord(ProjectRecord projectRecord)
 {
     try
     {
         _projectRecordRepository.Update(projectRecord);
         return(true);
     }
     catch
     {
         return(false);
     }
 }
示例#9
0
        public async Task <IActionResult> MarkType([FromForm] double MarkValue, [FromForm] string TargetUserId, object obj)
        {
            //System Validate
            if (!ModelState.IsValid)
            {
                return(RedirectToAction(nameof(MarkType)));
            }
            //User Validate
            var _cuser = _context.Users.Include(t => t.UserType).SingleOrDefault(t => t.UserName == User.Identity.Name);

            if (!_signInManager.IsSignedIn(User) || !_cuser.UserType.GivePointDirectly)
            {
                return(Unauthorized());
            }
            //Target Validate
            var _targetuser = await _context.Users.Include(t => t.UserType).SingleOrDefaultAsync(t => t.Id == TargetUserId);

            if (_targetuser == null)
            {
                return(NotFound());
            }
            if (!_targetuser.UserType.AvaliableToMark)
            {
                return(Unauthorized());
            }
            //Start Logic
            var _toDelete = _context.ProjectRecord.Where(t => t.DoneUserId == _targetuser.Id && t.WorkUserId == _cuser.Id);

            _context.ProjectRecord.RemoveRange(_toDelete);
            await _context.SaveChangesAsync();


            var FirstQuest = await _context.Project.FirstAsync(t => t.ProjectArg > 0);

            var RealRecord = new ProjectRecord
            {
                WorkUserId = _cuser.Id,
                DoneUserId = _targetuser.Id,
                Point      = MarkValue / FirstQuest.ProjectArg,
                ProjectId  = FirstQuest.ProjectId,
                Keyboarded = true
            };

            _context.ProjectRecord.Add(RealRecord);
            await _context.SaveChangesAsync();

            //#warning Not Implemented!
            var questions = _context.Project;

            return(RedirectToAction(nameof(Mark)));
        }
示例#10
0
        public async Task <IActionResult> Create([Bind("ProjectRecordId,DoneUserId,Point,ProjectId,WorkUserId")] ProjectRecord projectRecord)
        {
            if (ModelState.IsValid)
            {
                _context.Add(projectRecord);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewData["DoneUserId"] = new SelectList(_context.Users, "Id", "Id", projectRecord.DoneUserId);
            ViewData["ProjectId"]  = new SelectList(_context.Project, "ProjectId", "ProjectId", projectRecord.ProjectId);
            ViewData["WorkUserId"] = new SelectList(_context.Users, "Id", "Id", projectRecord.WorkUserId);
            return(View(projectRecord));
        }
示例#11
0
        public EntityCollection GetRelatedUser(IOrganizationService _service, CodeActivityContext context)
        {
            QueryExpression query = new QueryExpression(ProjectRecord.Get(context).LogicalName);

            string[] cols = { "msdyn_subject" };
            query.ColumnSet.Columns.AddRange(cols);
            query.Criteria = new FilterExpression();
            query.Criteria.AddCondition(ProjectRecord.Get(context).Id.ToString(), ConditionOperator.Equal, RecordGuid.Get(context).ToString());

            query.LinkEntities.Add(new LinkEntity("msdyn_project", "systemuser", "msdyn_projectid", "new_proj_userid", JoinOperator.Inner));
            query.LinkEntities[0].Columns.AddColumns("internalemailaddress", "systemuserid");
            query.LinkEntities[0].EntityAlias = "prj";

            EntityCollection ec = _service.RetrieveMultiple(query);

            return(ec);
        }
示例#12
0
        public ActionResult pRLove(long pRId)
        {
            ProjectRecord projectRecord = _projectRecordService.getPRecordById(pRId);

            projectRecord.userLoveNum = projectRecord.userLoveNum + 1;
            if (_projectRecordService.updateProjectRecord(projectRecord))
            {
                //活跃度+1
                if (System.Web.HttpContext.Current.Session["loginUser"] != null)
                {
                    User user = _userService.getUserById(loginUser.userId);
                    user.userVitality = user.userVitality + 1;
                    _userService.updateUser(user);
                }
                JsonResult["boo_success"] = true;
                return(Json(JsonResult));
            }
            else
            {
                JsonResult["boo_success"] = false;
                return(Json(JsonResult));
            }
        }
示例#13
0
    public Result <CreateProjectResponse> CreateProject(CreateProjectRequest request)
    {
        using var session     = _apiDatabase.SessionFactory().OpenSession();
        using var transaction = session.BeginTransaction(IsolationLevel.ReadCommitted);

        var urlSlug = SlugService.FromText(request.Title, request.UrlSlug);

        if (urlSlug.IsFailure)
        {
            return(Result <CreateProjectResponse> .From(urlSlug));
        }

        var project = new ProjectRecord
        {
            Reference       = Guid.NewGuid(),
            Title           = request.Title,
            UrlSlug         = urlSlug.Value,
            StartedAt       = request.StartedAt,
            Summary         = request.Summary,
            Description     = request.Description,
            SourceCodeUrl   = request.SourceCodeUrl,
            PreviewImageUrl = request.PreviewImageUrl,
            DisplayOrder    = request.DisplayOrder,
            CreatedAt       = DateTime.UtcNow,
            ViewUrl         = request.ViewUrl,
            Tags            = request.Tags
        };

        session.Save(project);

        transaction.Commit();

        var settingsResult = _projectsSettingsService.GetProjectsSettings();

        if (settingsResult.IsFailure)
        {
            return(Result <CreateProjectResponse> .From(settingsResult));
        }

        _projectsSettingsService.UpdateProjectsSettings(new UpdateProjectsSettingsRequest
        {
            DisplayOrder = settingsResult.Value.DisplayOrder
                           .Select(x => x.Reference)
                           .Concat(new [] { project.Reference })
                           .ToList()
        });

        return(Result <CreateProjectResponse> .Of(new CreateProjectResponse
        {
            Reference = project.Reference,
            Title = project.Title,
            UrlSlug = project.UrlSlug,
            StartedAt = project.StartedAt,
            Summary = project.Summary,
            Description = project.Description,
            SourceCodeUrl = project.SourceCodeUrl,
            PreviewImageUrl = project.PreviewImageUrl,
            DisplayOrder = project.DisplayOrder,
            CreatedAt = project.CreatedAt,
            ViewUrl = project.ViewUrl,
            Tags = project.Tags
        }));
    }
示例#14
0
 public int Save(ProjectRecord record)
 {
     DB.Project_Records.Add(record);
     DB.SaveChanges();
     return(record.ID);
 }
 public UpdateProjectResponse(ProjectRecord project)
 {
     Project = project;
 }