コード例 #1
0
 public JsonResult AddRegisteredReading(RegisteredWaterMeterReadingViewModel viewModel)
 {
     try
     {
         using (VesiPortalDbContext context = new VesiPortalDbContext())
         {
             RegisteredWaterMeterReading registeredWaterMeterReading = new RegisteredWaterMeterReading
             {
                 Guid           = Guid.NewGuid(),
                 WaterMeterGuid = viewModel.WaterMeterGuid,
                 Reading        = viewModel.Reading,
                 ReadingDate    = viewModel.ReadingDate
             };
             WaterMeterReading.Add(context, registeredWaterMeterReading);
         }
         return(Json(data: new { Valid = true, Message = Messages.WaterMeterReadingAdded },
                     behavior: JsonRequestBehavior.AllowGet));
     }
     catch (Exception)
     {
         return(Json(data: new
         {
             Valid = false,
             ErrorMessage = ErrorMessages.WaterMeterReadingAddError
         },
                     behavior: JsonRequestBehavior.AllowGet));
     }
 }
コード例 #2
0
 public ActionResult AddUnregisteredFeedback(UnregisteredFeedbackViewModel viewModel)
 {
     try
     {
         using (VesiPortalDbContext context = new VesiPortalDbContext())
         {
             UnregisteredFeedback unregisteredFeedback = new UnregisteredFeedback
             {
                 Guid              = Guid.NewGuid(),
                 SenderName        = viewModel.SenderName,
                 SenderEmail       = viewModel.SenderEmail,
                 SenderPhoneNumber = viewModel.SenderPhoneNumber,
                 FeedBackText      = viewModel.FeedBackText
             };
             Feedback.Add(context, unregisteredFeedback);
         }
         TempData[StaticMembers.MESSAGE] = Messages.FeedbackAdded;
         return(RedirectToAction("Index", "Home"));
     }
     catch (Exception)
     {
         TempData[StaticMembers.ERROR_MSG] = ErrorMessages.FeedbackAddError;
         return(ShowNewUnregisteredFeedback(viewModel));
     }
 }
コード例 #3
0
        public async Task <ActionResult> RegisterCustomer(RegisterCustomerViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new CustomerUser {
                    Id = Guid.NewGuid(), UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, CustomerNumber = model.CustomerNumber
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    await this.UserManager.AddToRoleAsync(user.Id, "Customer");

                    // Add default water meter.
                    // NOTE: This is for demonstration purposes only! In the actual application, water meters would not be addef from the customer portal.
                    WaterMeter waterMeter = new WaterMeter()
                    {
                        CustomerUserGuid = user.Id,
                        Id = "123456789",
                    };
                    using (VesiPortalDbContext context = new VesiPortalDbContext())
                    {
                        WaterMeter.Add(context, waterMeter);
                    }

                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    TempData[StaticMembers.MESSAGE] = Resources.Messages.Messages.RegisterSuccess;
                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
コード例 #4
0
 public JsonResult AddUnregisteredReading(UnregisteredWaterMeterReadingViewModel viewModel)
 {
     try
     {
         using (VesiPortalDbContext context = new VesiPortalDbContext())
         {
             UnregisteredWaterMeterReading unregisteredWaterMeterReading = Mapper.Map <UnregisteredWaterMeterReading>(viewModel);
             WaterMeterReading.Add(context, unregisteredWaterMeterReading);
         }
         return(Json(data: new { Valid = true, Message = Messages.WaterMeterReadingAdded },
                     behavior: JsonRequestBehavior.AllowGet));
     }
     catch (Exception)
     {
         return(Json(data: new {
             Valid = false, ErrorMessage = ErrorMessages.WaterMeterReadingAddError
         },
                     behavior: JsonRequestBehavior.AllowGet));
     }
 }
コード例 #5
0
        public ActionResult GetConsumptionChart(ConsumptionHistoryViewModel viewModel)
        {
            CustomerUser user = null;
            ConsumptionHistoryChartViewModel consumptionHistoryChartViewModel = new ConsumptionHistoryChartViewModel();

            try
            {
                using (VesiPortalDbContext context = new VesiPortalDbContext())
                {
                    var guid = User.Identity.GetUserId();
                    user = (CustomerUser)UserManager.FindById(Guid.Parse(guid));

                    WaterMeter waterMeter = WaterMeter.Get(context, viewModel.WaterMeterGuid);
                    if (waterMeter == null)
                    {
                        throw new Exception(ErrorMessages.WaterMeterNotFound);
                    }
                    List <RegisteredWaterMeterReading> registeredWaterMeterReadings =
                        RegisteredWaterMeterReading.GetRegisteredWaterMeterReadings(context, waterMeter, viewModel.StartDate, viewModel.EndDate)
                        .ToList();

                    if (registeredWaterMeterReadings.Count > 0)
                    {
                        consumptionHistoryChartViewModel.ConsumptionAmounts = registeredWaterMeterReadings.OrderBy(x => x.ReadingDate).Select(x => x.DailyConsumption).ToList();
                        consumptionHistoryChartViewModel.ConsumptionDates   = registeredWaterMeterReadings.OrderBy(x => x.ReadingDate).Select(x => x.ReadingDate).ToList();

                        DateTime minDate = viewModel.StartDate.HasValue ? viewModel.StartDate.Value :  registeredWaterMeterReadings.Min(x => x.ReadingDate);
                        DateTime maxDate = viewModel.EndDate.HasValue ? viewModel.EndDate.Value  :registeredWaterMeterReadings.Max(x => x.ReadingDate);
                        consumptionHistoryChartViewModel.StartDate = minDate;
                        consumptionHistoryChartViewModel.EndDate   = maxDate;
                    }

                    consumptionHistoryChartViewModel.FileName = user.Id.GetHashCode().ToString() + ".png";
                    return(PartialView("_ConsumptionHistoryChart", consumptionHistoryChartViewModel));
                }
            }
            catch
            {
                return(PartialView("_ConsumptionHistoryChart", new ConsumptionHistoryChartViewModel()));
            }
        }
コード例 #6
0
 public ActionResult AddRegisteredFeedback(RegisteredFeedbackViewModel viewModel)
 {
     try
     {
         using (VesiPortalDbContext context = new VesiPortalDbContext())
         {
             RegisteredFeedback unregisteredFeedback = new RegisteredFeedback
             {
                 Guid             = Guid.NewGuid(),
                 CustomerUserGuid = viewModel.CustomerUserGuid,
                 FeedBackText     = viewModel.FeedBackText
             };
             Feedback.Add(context, unregisteredFeedback);
         }
         TempData[StaticMembers.MESSAGE] = Messages.FeedbackAdded;
         return(RedirectToAction("Index", "Home"));
     }
     catch (Exception)
     {
         TempData[StaticMembers.ERROR_MSG] = ErrorMessages.FeedbackAddError;
         return(ShowNewRegisteredFeedback(viewModel));
     }
 }
コード例 #7
0
        // In this method we will create default User roles and Admin user for login
        private void CreateRolesandUsers()
        {
            VesiPortalDbContext context = new VesiPortalDbContext();

            var roleManager = new VesiPortalRoleManager(new VesiPortalRoleStore(context));
            var UserManager = new VesiPortalUserManager(new VesiPortalUserStore(context));

            //var UserManager = HttpContext.Current.GetOwinContext().Get<VesiPortalUserManager>(null);

            // In Startup iam creating first Admin Role and creating a default Admin User
            if (!roleManager.RoleExists("Admin"))
            {
                // first we create Admin rool
                var role = new VesiPortalRole
                {
                    Id   = Guid.NewGuid(),
                    Name = "Admin"
                };
                roleManager.Create(role);

                //Here we create a Admin super user who will maintain the website

                var user = new AdminUser
                {
                    Id        = Guid.NewGuid(),
                    FirstName = "Toni",
                    LastName  = "Kuosmanen",
                    UserName  = "******",
                    Email     = "*****@*****.**"
                };



                string userPWD = "_bWx5krnd";

                var chkUser = UserManager.Create(user, userPWD);

                //Add default User to Role Admin
                if (chkUser.Succeeded)
                {
                    var result1 = UserManager.AddToRole(user.Id, "Admin");
                }
            }

            // creating Creating customer role
            if (!roleManager.RoleExists("Customer"))
            {
                var role = new VesiPortalRole();
                role.Id   = Guid.NewGuid();
                role.Name = "Customer";
                roleManager.Create(role);
            }

            if (!roleManager.RoleExists("WaterworkUser"))
            {
                var role = new VesiPortalRole();
                role.Id   = Guid.NewGuid();
                role.Name = "WaterworkUser";
                roleManager.Create(role);
            }
        }