예제 #1
0
        public async Task <IActionResult> Track([Bind("Email,OpportunityName,OrganizationName,Date,Hours")]
                                                TrackHoursModel trackHoursModel)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser user = _userManager.Users.FirstOrDefault(u => u.Email == trackHoursModel.Email);
                if (user == null)
                {
                    ViewData["Error"] = "No Email Found";
                }
                else
                {
                    VolunteerHours volunteerHours = new VolunteerHours()
                    {
                        User             = user,
                        OpportunityName  = trackHoursModel.OpportunityName,
                        OrganizationName = trackHoursModel.OrganizationName,
                        DateTime         = trackHoursModel.Date,
                        Hours            = trackHoursModel.Hours
                    };
                    _dbContext.VolunteerHours.Add(volunteerHours);
                    await _dbContext.SaveChangesAsync();

                    Message = "Hours successfully submitted! Thank you!";
                    return(RedirectToAction("Track"));
                }
            }

            return(View(trackHoursModel));
        }
예제 #2
0
        public void CreateOrUpdate(ApplicationDbContext context, string userId)
        {
            VolunteerHours volunteerHours = context.VolunteerHours.Find(Id);
            DateTime       dateTime       = VollyConstants.ConvertToUtc(DateTime);

            if (volunteerHours != null)
            {
                volunteerHours.Hours            = Hours;
                volunteerHours.DateTime         = dateTime;
                volunteerHours.OpportunityName  = OpportunityName;
                volunteerHours.OrganizationName = OrganizationName;
            }
            else
            {
                VolunteerHours newVolunteerHours = new VolunteerHours()
                {
                    OpportunityName  = OpportunityName,
                    OrganizationName = OrganizationName,
                    DateTime         = dateTime,
                    Hours            = Hours,
                    UserId           = userId
                };

                context.Add(newVolunteerHours);
            }

            context.SaveChanges();
        }
예제 #3
0
        public async Task <IActionResult> TrackExternalAsync(TrackExternalViewModel model)
        {
            var user = await _userManager.GetUserAsync(HttpContext.User);

            var volunteerHours = new VolunteerHours()
            {
                OrganizationName = model.OrganizationName,
                OpportunityName  = model.OpportunityName,
                User             = user,
                Hours            = model.Hours
            };

            var startTime = model.StartTime;

            if (string.IsNullOrEmpty(model.StartTime))
            {
                startTime = "12:00am";
            }

            if (!string.IsNullOrEmpty(model.StartDate))
            {
                volunteerHours.DateTime = DateTime.Parse($"{model.StartDate} {model.StartTime}");
            }

            _context.Add(volunteerHours);
            _context.SaveChanges();
            TempData["Messages"] = $"{model.Hours} hours added.";
            return(RedirectToAction(nameof(Index)));
        }
예제 #4
0
        public async Task <IActionResult> TrackOrganizationAsync(TrackOrganizationViewModel model)
        {
            var user = await _userManager.GetUserAsync(HttpContext.User);

            var organization = _context.Organizations
                               .Where(x => x.Id == model.Id && x.Enabled)
                               .SingleOrDefault();

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

            var volunteerHours = new VolunteerHours()
            {
                OrganizationId   = organization.Id,
                OrganizationName = organization.Name,
                User             = user,
                Hours            = model.Hours
            };

            if (!string.IsNullOrEmpty(model.StartDate) && !string.IsNullOrEmpty(model.StartTime))
            {
                volunteerHours.DateTime = DateTime.Parse($"{model.StartDate} {model.StartTime}");
            }

            _context.Add(volunteerHours);
            _context.SaveChanges();
            TempData["Messages"] = $"{model.Hours} hours added.";
            return(RedirectToAction(nameof(Index)));
        }
예제 #5
0
 public static VolunteerHoursModel FromVolunteerHours(VolunteerHours volunteerHours)
 {
     return(new VolunteerHoursModel()
     {
         Id = volunteerHours.Id,
         User = volunteerHours.User.Email,
         UserId = volunteerHours.User.Id,
         DateTime = VollyConstants.ConvertFromUtc(volunteerHours.DateTime),
         Hours = volunteerHours.Hours,
         OrganizationName = volunteerHours.OrganizationName,
         OpportunityName = volunteerHours.OpportunityName
     });
 }
예제 #6
0
 public static VolunteerHoursCSVModel FromVolunteerHours(VolunteerHours volunteerHours)
 {
     return(new VolunteerHoursCSVModel()
     {
         Company = volunteerHours.User?.Company?.Name,
         CompanyCode = volunteerHours.User?.Company?.CompanyCode,
         User = volunteerHours.User.Email,
         OrganizationName = volunteerHours.OrganizationName,
         OpportunityName = volunteerHours.OpportunityName,
         DateTime = VollyConstants.ConvertFromUtc(volunteerHours.DateTime),
         Hours = volunteerHours.Hours
     });
 }
예제 #7
0
        public static VolunteerHoursCSVModel FromVolunteerHours(VolunteerHours volunteerHours)
        {
            var csvModel = new VolunteerHoursCSVModel()
            {
                User             = volunteerHours.User.Email,
                OrganizationName = volunteerHours.OrganizationName,
                OpportunityName  = volunteerHours.OpportunityName,
                Hours            = volunteerHours.Hours
            };
            var dateTime = volunteerHours.DateTime;

            if (dateTime != null)
            {
                csvModel.DateTime = dateTime;
            }
            return(csvModel);
        }