Esempio n. 1
0
        public async Task <IActionResult> Edit(int id, [Bind("ProjectInviteId,DateInvited,DateAccepted,IsActive,SenderId,ReceiverId,ProjectId")] ProjectInvite projectInvite)
        {
            if (id != projectInvite.ProjectInviteId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(projectInvite);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ProjectInviteExists(projectInvite.ProjectInviteId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["ProjectId"]  = new SelectList(_context.Project, "ProjectId", "ArtistName", projectInvite.ProjectId);
            ViewData["ReceiverId"] = new SelectList(_context.ApplicationUsers, "Id", "Id", projectInvite.ReceiverId);
            ViewData["SenderId"]   = new SelectList(_context.ApplicationUsers, "Id", "Id", projectInvite.SenderId);
            return(View(projectInvite));
        }
Esempio n. 2
0
        public void Invite(Company company)
        {
            var invite = new ProjectInvite();

            invite.Project = this;
            invite.Company = company;
            invite.Status  = PROJECT_INVITE_STATUS.NEW;
        }
Esempio n. 3
0
        public async Task <IActionResult> Create([Bind("ProjectInviteId,DateInvited,DateAccepted,IsActive,SenderId,ReceiverId,ProjectId")] ProjectInvite projectInvite)
        {
            if (ModelState.IsValid)
            {
                _context.Add(projectInvite);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["ProjectId"]  = new SelectList(_context.Project, "ProjectId", "ArtistName", projectInvite.ProjectId);
            ViewData["ReceiverId"] = new SelectList(_context.ApplicationUsers, "Id", "Id", projectInvite.ReceiverId);
            ViewData["SenderId"]   = new SelectList(_context.ApplicationUsers, "Id", "Id", projectInvite.SenderId);
            return(View(projectInvite));
        }
        public async Task <IActionResult> InviteMembers(InviteUserViewModel viewmodel)
        {
            var user = await GetCurrentUserAsync();

            var projectInvite = new ProjectInvite();

            projectInvite.DateInvited = DateTime.Now;
            projectInvite.IsActive    = true;
            projectInvite.SenderId    = user.Id;
            projectInvite.ReceiverId  = viewmodel.UserId;
            projectInvite.ProjectId   = viewmodel.ProjectId;

            _context.Add(projectInvite);
            await _context.SaveChangesAsync();

            return(RedirectToAction("InviteMembers", new { id = viewmodel.ProjectId }));
        }
Esempio n. 5
0
        public ProjectInvite SendInvite(long companyId)
        {
            var invite  = new ProjectInvite();
            var company = this.DbContext().Company.LoadRelated(c => c.Account).Single(c => c.Id == companyId);

            invite.ProjectId = this.Id;
            invite.CompanyId = companyId;
            invite.Status    = PROJECT_INVITE_STATUS.NEW;

            if (!this.IsLoaded(p => p.Attachments))
            {
                this.Load(this.EntityContext, p => p.Attachments);
            }

            string subject = string.Format("You have been invited to give a quote for Project {0}", this.Title);

            NotificationUtil.SendSystemEmailWithTemplate(company.Account.Email, subject, EMAIL_TEMPLATES.PROJECT_INVITE_TEMPLATE,
                                                         company.Name, this.Title, this.Id.ToString(), this.Description,
                                                         this.Attachments.Count > 0 ? this.Attachments.Single().Token.ToString() : null,
                                                         this.Budget.ToString());

            this.DbContext().AddObject(invite);
            return(invite);
        }