コード例 #1
0
        public async Task <IActionResult> Create(OpportunityCreateViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.GetUserAsync(HttpContext.User);

                var organization = _context.Organizations
                                   .Where(x => x.Id == model.OrganizationId)
                                   .FirstOrDefault();

                if (organization == null)
                {
                    TempData["Messages"] = "Organization not found in request.";
                    return(RedirectToAction(nameof(Index)));
                }

                var now = DateTime.Now;

                Opportunity opportunity = model.GetOpportunity(_imageManager);
                opportunity.CreatedBy       = user;
                opportunity.Organization    = organization;
                opportunity.CreatedDateTime = now;
                opportunity.UpdatedDateTime = now;

                if (string.IsNullOrEmpty(model.ContactEmail))
                {
                    opportunity.ContactEmail = user.Email;
                }

                _context.Add(opportunity);

                await _context.SaveChangesAsync();

                TempData["Messages"] = $"\"{opportunity.Name}\" has been created.";

                if (Opportunity.RequiresOccurrences(model.OpportunityType))
                {
                    return(RedirectToAction(nameof(Occurrences), new { id = opportunity.Id }));
                }

                return(RedirectToAction(nameof(Index)));
            }

            return(View(model));
        }
コード例 #2
0
        public async Task <IActionResult> Create(OpportunityCreateViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.GetUserAsync(HttpContext.User);

                var organizationsManagedByUser = _context.OrganizationAdministratorUsers
                                                 .Where(x => x.UserId == user.Id)
                                                 .Select(x => x.Organization)
                                                 .ToList();

                if (organizationsManagedByUser.Count != 1)
                {
                    TempData["Messages"] = $"Failed to create opportunity.";
                    return(RedirectToAction("Index", "Error"));
                }

                var now = DateTime.Now;

                Opportunity opportunity = model.GetOpportunity(_imageManager);
                opportunity.CreatedBy       = user;
                opportunity.Organization    = organizationsManagedByUser[0];
                opportunity.CreatedDateTime = now;
                opportunity.UpdatedDateTime = now;

                if (string.IsNullOrEmpty(model.ContactEmail))
                {
                    opportunity.ContactEmail = user.Email;
                }

                _context.Add(opportunity);

                await _context.SaveChangesAsync();

                if (Opportunity.RequiresOccurrences(model.OpportunityType))
                {
                    return(RedirectToAction(nameof(Occurrences), new { id = opportunity.Id }));
                }

                return(RedirectToAction(nameof(Index)));
            }
            return(View(model));
        }