public IActionResult Welcome(UserLoginViewModel userLoginViewModel) { if (ModelState.IsValid) { //Add user to database if they don't already exist if (_repo.Read(userLoginViewModel.Name) == null) { _repo.Create(userLoginViewModel.Name); } //Populate ViewModel UserHomeViewModel userHomeViewModel = new UserHomeViewModel() { User = _repo.Read(userLoginViewModel.Name), Store = _repo.ReadStore(userLoginViewModel.Store) }; //Save IDs for later reference TempData["UserId"] = userHomeViewModel.User.Id; TempData["StoreId"] = userHomeViewModel.Store.Id; return(View(userHomeViewModel)); } userLoginViewModel.Stores = _repo.ReadStores(); return(View("Login", userLoginViewModel)); }
public async Task <ActionResult> UsersHome(short?id) { UserHomeViewModel mem_home = new UserHomeViewModel(); if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var mEMBER = await db.MEMBER.FindAsync(id); mem_home.member = mEMBER; mem_home.mem_following = mEMBER.FOLLOWING.ToList(); mem_home.event_for_home = new List <EVENT>(); foreach (var item in mem_home.mem_following) { foreach (var e in item.MEMBER1.EVENT) { if (mem_home.event_for_home.Where(a => a.EVENT_ID.Equals(e.EVENT_ID)).FirstOrDefault() == null) { mem_home.event_for_home.Add(e); } } } if (mEMBER == null) { return(HttpNotFound()); } return(View(mem_home)); //return View(mEMBER); }
// when user submits login form public ActionResult Log_In(LoginViewModel model) { // search for the users email in the database User user = db.Users.FirstOrDefault(c => c.Email == model.LoginEmail); // if the user is found if (user != null) { // check to see if passwords match if (user.Password == model.LoginPassword) { // set the user id and email into session variables Session["UserId"] = user.UserID; Session["UserEmail"] = user.Email; // send user to homepage UserHomeViewModel userHomeModel = new UserHomeViewModel(); return(View("UserHome", userHomeModel)); } else { // return to login screen and notify user of invalid password model.LoginErrorMessage = "Invalid Password"; return(View("Index", model)); } } else { // return to login screen and notify user that email was not found model.LoginErrorMessage = "Email not found"; return(View("Index", model)); } }
public IActionResult LargeFilter(UserHomeViewModel zeuserHomeViewModel) { QueryGenerally queryGenerally = new QueryGenerally(db); GeneralQuery generalQuery = new GeneralQuery() { Country = zeuserHomeViewModel.Country, Keyword = zeuserHomeViewModel.Keyword, MaxPrice = zeuserHomeViewModel.MaxPrice, MinPrice = zeuserHomeViewModel.MinPrice, NumberOfBathrooms = zeuserHomeViewModel.NumberOfBathrooms, NumberofBedrooms = zeuserHomeViewModel.NumberofBedrooms, PropertyStatus = zeuserHomeViewModel.PropertyStatus, PropertyType = zeuserHomeViewModel.PropertyType }; UserHomeViewModel userGeneralViewModel = new UserHomeViewModel() { SliderProperties = db.Properties.Include(m => m.PropertyMode).Include(m => m.PropertyType).Where(m => m.isDealClosed == true && m.isDisplayed == true), OurServices = db.OurServices.OrderByDescending(m => m.Id), RecentProperties = db.Properties.Include(m => m.PropertyMode).Include(m => m.PropertyType).OrderByDescending(m => m.Id), PopularProperties = db.Properties.Include(m => m.PropertyMode).Include(m => m.PropertyType).Where(m => m.isDealClosed), PropertyModes = db.propertyModes, PropertyTypes = db.PropertyTypes, Testimonials = db.Testimonials.Include(m => m.User).Where(m => m.isApproved == true), AllProperties = db.Properties.Include(m => m.PropertyMode).Include(m => m.PropertyType), MenuProperties = db.Properties.Include(m => m.PropertyMode).Include(m => m.PropertyType).OrderByDescending(m => m.Id).Take(10), SocialMedia = db.SocialMedias.OrderByDescending(m => m.Id).FirstOrDefault() }; userGeneralViewModel.RecentProperties = queryGenerally.GetPropertieszz(generalQuery); return(View("PropertyList", userGeneralViewModel)); }
public IActionResult UserHome() { var currentUserId = _userManager.GetUserId(HttpContext.User); var queues = new List <Queue>(); var userTeams = _db.UserTeams.Where(ut => ut.UserId == currentUserId); var teams = new List <Team>(); foreach (var userTeam in userTeams) { teams.Add(_db.Teams.FirstOrDefault(t => t.Id == userTeam.TeamId)); } var teamsQueue = new List <Queue>(); foreach (var team in teams) { teamsQueue = _db.Queues.Where(q => q.TeamId == team.Id).ToList(); foreach (var teamQueue in teamsQueue) { queues.Add(teamQueue); } } var model = new UserHomeViewModel { TeamsList = teams, QueuesList = queues }; return(View(model)); }
public IActionResult WelcomeRedirect() { UserHomeViewModel userHomeViewModel = new UserHomeViewModel() { User = _repo.Read((int)TempData.Peek("UserId")), Store = _repo.ReadStore((int)TempData.Peek("StoreId")) }; return(View("Welcome", userHomeViewModel)); }
protected override void OnAppearing() { base.OnAppearing(); BindingContext = null; BindingContext = ViewModel = new UserHomeViewModel() { Navigation = Navigation }; }
public async Task <IActionResult> Index() { var user = await _userManager.GetUserAsync(User); var userHomeViewModel = new UserHomeViewModel { MyFollowingProjects = _BuyerRepo.GetMyFollowingsById(user.Id), MyWatchingProjects = _BuyerRepo.GetMyWatchingProjs(user.Id), }; return(View(userHomeViewModel)); }
public ActionResult Home(int id) { UserHomeViewModel userHomeViewModel = new UserHomeViewModel(); var user = ESaleContext.getUserByID(id); userHomeViewModel.User = Mapper.Map <MVCUser>(user); var posts = ESaleContext.getPostsForUser(id); userHomeViewModel.listofposts = Mapper.Map <List <MVCPost> >(posts); return(View(userHomeViewModel)); }
// when the user submits signup public ActionResult Create_Account(LoginViewModel model) { // establish connection to database CoreysListEntities db = new CoreysListEntities(); try { // Checking to see if the email entered already exist in database User testUser = db.Users.FirstOrDefault(u => u.Email == model.Email); // if not create and add new user if (testUser == null) { User newUser = new User(); newUser.FirstName = model.FirstName; newUser.LastName = model.LastName; newUser.Email = model.Email; newUser.PhoneNum = Convert.ToString(model.PhoneNumber.Replace("-", "")); newUser.Password = model.Password; newUser.CreatedBy = "Corey"; newUser.CreatedDate = DateTime.Now; // save the new user to the database db.Users.Add(newUser); db.SaveChanges(); // set the new users information in session variables Session["UserId"] = newUser.UserID; Session["UserEmail"] = newUser.Email; // send user to homepage UserHomeViewModel userHomeModel = new UserHomeViewModel(); return(View("UserHome", userHomeModel)); } else { // else return error message informing user that email already is registered model.CreateAccountErrorMessage = "Email already in use"; return(View("Index", model)); } } catch (Exception e) { // exception connecting to database string error = e.Message; return(View("Index", model)); } }
public IActionResult UserHome(double radius = 50, int daysBeforeToday = 3, bool IsUserObservation = true) { UserHomeViewModel model = new UserHomeViewModel(); List <Animal> nearbyAnimals = new List <Animal>(); List <Weather> nearbyWeathers = new List <Weather>(); List <Observation> nearbyObservations = new List <Observation>(); model.radius = (radius / 111111) * 1000; model.daysBeforeToday = daysBeforeToday; DateTime today = DateTime.Now; DateTime before = today.AddDays(daysBeforeToday * -1); model.NearbyObservation = nearbyObservations; var userId = userManager.GetUserId(HttpContext.User); dbContext.ClearCache(dbContext.GetUserFromIdentity(userId)); model.User = dbContext.GetUserFromIdentity(userId); model.IsUserObservation = IsUserObservation; if (model.User.Latitude == null || model.User.Longitude == null || model.User.Latitude == "" || model.User.Longitude == "") { TempData["noUser"] = "******"; return(RedirectToAction("AddUserInfo")); } var t = TempData["Success"]; if (t != null) { ViewData["Success"] = t; } if (IsUserObservation) { ViewData["observationList"] = "Här syns dina närliggande observationer"; nearbyAnimals = dbContext.GetNearbyUserAnimals(model.User.Latitude, model.User.Longitude, model.radius, model.User.UserId); nearbyWeathers = dbContext.GetNearbyUserWeathers(model.User.Latitude, model.User.Longitude, model.radius, model.User.UserId); } else { ViewData["observationList"] = "Här syns observationer i närheten"; nearbyAnimals = dbContext.GetNearbyAnimals(model.User.Latitude, model.User.Longitude, model.radius); nearbyWeathers = dbContext.GetNearbyWeathers(model.User.Latitude, model.User.Longitude, model.radius); } nearbyObservations = (Helper.PopulateObservationList(nearbyAnimals, nearbyWeathers)); model.NearbyObservation = Helper.filterByDateUserHome(nearbyObservations, before, today); return(View(model)); }
// GET: /Accounts/ public ActionResult Index() { // Check to insure user in logged in if (Session["UserId"] != null) { // if so send them to the home page UserHomeViewModel userHomeModel = new UserHomeViewModel(); return(View("UserHome", userHomeModel)); } else { // else send them to login page LoginViewModel model = new LoginViewModel(); return(View("Index", model)); } }
// Action when homepage is called public ActionResult UserHome(int tabId = 0) { // if user is not logged in return them to login page if (Session["UserId"] == null) { LoginViewModel loginModel = new LoginViewModel(); return(View("Index", loginModel)); } // send them to their home page UserHomeViewModel userHomeModel = new UserHomeViewModel(); // tabId used to keep track of the current Jquery ui tab the user is on userHomeModel.TabId = tabId; return(View("UserHome", userHomeModel)); }
public IActionResult PropertyList() { UserHomeViewModel userGeneralViewModel = new UserHomeViewModel() { SliderProperties = db.Properties.Include(m => m.PropertyMode).Include(m => m.PropertyType).Where(m => m.isDealClosed == true && m.isDisplayed == true), OurServices = db.OurServices.OrderByDescending(m => m.Id), RecentProperties = db.Properties.Include(m => m.PropertyMode).Include(m => m.PropertyType).OrderByDescending(m => m.Id), PopularProperties = db.Properties.Include(m => m.PropertyMode).Include(m => m.PropertyType).Where(m => m.isDealClosed), PropertyModes = db.propertyModes, PropertyTypes = db.PropertyTypes, Testimonials = db.Testimonials.Include(m => m.User).Where(m => m.isApproved == true), AllProperties = db.Properties.Include(m => m.PropertyMode).Include(m => m.PropertyType), MenuProperties = db.Properties.Include(m => m.PropertyMode).Include(m => m.PropertyType), SocialMedia = db.SocialMedias.OrderByDescending(m => m.Id).FirstOrDefault() }; return(View(userGeneralViewModel)); }
public ActionResult AccountUpdate(User updatedUserInfo) { // get the user from the database and update thier information CoreysListEntities db = new CoreysListEntities(); User user = db.Users.FirstOrDefault(u => u.UserID == updatedUserInfo.UserID); user.PhoneNum = updatedUserInfo.PhoneNum; user.FirstName = updatedUserInfo.FirstName; user.LastName = updatedUserInfo.LastName; user.Password = updatedUserInfo.Password; // save the changes made to the user db.SaveChanges(); // send the user to their homepage UserHomeViewModel userHomeModel = new UserHomeViewModel(); return(View("UserHome", userHomeModel)); }
public async Task <IActionResult> Index() { var user = await _userManager.GetUserAsync(User); var userHomeViewModel = new UserHomeViewModel { MyLeadingProjects = _DevRepo.GetMyLeadingProjsById(user.Id), MyInvolvedProjects = _DevRepo.GetMyProjsById(user.Id), MyFollowingProjects = _DevRepo.GetMyFollowingsById(user.Id), MyCompletedProjects = _DevRepo.GetMyCompletedProjsById(user.Id), MyTradedProjects = _DevRepo.GetMyTradedProjsById(user.Id), MyAbortedProjects = _DevRepo.GetMyAbortedProjsById(user.Id), MyEndors = _DevRepo.GetEndorsById(user.Id), MyAppliedRoles = _RecruitRepo.GetRecruitsByCandyId(user.Id), IHaveReviews = _ReviewRepo.ThisUserHasReviews(user.Id), MyUserId = user.Id }; return(View(userHomeViewModel)); }
public async Task <IActionResult> Index() { IdentityUser user = await _userManager.GetUserAsync(User); DateTime lastLogin = await _usersHandler.GetPreviousLoginAttempt(user); int numLoginsThisMonth = await _usersHandler.GetNumLoginsThisMonth(user); string username = user.UserName; int numUnread = await _messagesHandler.CountUserUnreadMessegesAsync(username); UserHomeViewModel vm = new UserHomeViewModel { Username = user.UserName, NumUnreadMessages = numUnread, LastLogin = lastLogin, NumLoginsThisMonth = numLoginsThisMonth }; return(View(vm)); }
public IActionResult IndexLoggedIn() { User user = this.usersService.ReturnUserById(this.User.Id); UserHomeViewModel userHomeViewModel = user.To <UserHomeViewModel>(); userHomeViewModel.Problems.Clear(); foreach (UserProblem userProblem in user.Problems) { ProblemHomeViewModel problemHomeViewModel = new ProblemHomeViewModel() { Id = userProblem.ProblemId, Name = userProblem.Problem.Name, Count = this.submissionsService.CountOfSubmissionsForCurrentProblem(userProblem.ProblemId) }; userHomeViewModel.Problems.Add(problemHomeViewModel); } return(this.View(userHomeViewModel)); }
// // GET: /UserHome/UserHomeRecipients public ActionResult UserHomeRecipients() { //getting logged in userID and insuring some one is logged in if (Session["UserName"] == null) { return(RedirectToAction("", "")); } int loggedIN = Int32.Parse(Session["UserName"].ToString()); try { //Getting Data from database and passing number of donors,reps and organs into View var viewModel = new UserHomeViewModel(Session["UserName"].ToString()) { numberOfRecipients = (from Recipient in OrganDonorSystemDB.Recipients where Recipient.medicalPersonnelID == loggedIN select Recipient.recipentID).Count(), RecipientsIDs = (from Recipient in OrganDonorSystemDB.Recipients where Recipient.medicalPersonnelID == loggedIN select Recipient.recipentID).ToList(), RepcipientOriginalIDs = (from Recipient in OrganDonorSystemDB.Recipients where Recipient.medicalPersonnelID == loggedIN select Recipient.orignialID).ToList(), DatesRegistered = (from Recipient in OrganDonorSystemDB.Recipients where Recipient.medicalPersonnelID == loggedIN select Recipient.dateRegistered).ToList(), }; return(View(viewModel)); } catch (Exception e) { //redirect to error page and pass message return(RedirectToAction("UserHomeError", "UserHome", new { message = "Error accessing recipients list from database" })); } }
// // GET: /UserHome/ public ActionResult Index() { //getting logged in userID and insuring some one is logged in if (Session["UserName"] == null) { return(RedirectToAction("", "")); } try { //viewModel has counts var viewModel = new UserHomeViewModel(Session["UserName"].ToString()); Action matchMakingAsynch = runMatchMaking; matchMakingAsynch.BeginInvoke(ar => matchMakingAsynch.EndInvoke(ar), null); return(View(viewModel)); } catch (Exception e) { //redirect to error page and pass message return(RedirectToAction("UserHomeError", "UserHome", new { message = "Error accessing counts from database" })); } }
// GET: /UserHome/UserHomeOrgans public ActionResult UserHomeOrgans() { //getting logged in userID and insuring some one is logged in if (Session["UserName"] == null) { return(RedirectToAction("", "")); } int loggedIN = Int32.Parse(Session["UserName"].ToString()); try { //Getting Data from database and passing number of donors,reps and organs into View var viewModel = new UserHomeViewModel(Session["UserName"].ToString()); viewModel.setOrganFromMedicalID(loggedIN); return(View(viewModel)); } catch (Exception e) { //redirect to error page and pass message return(RedirectToAction("UserHomeError", "UserHome", new { message = "Error accessing organs list from database" })); } }
public ActionResult HomePage() { // Get the ASP.NET Identity Id of the currently authorized user var id = User.Identity.GetUserId(); var profiledb = new ProfileContext(); // Get all profile info for current logged in user where the ASPNET ID = profile ID var profile = profiledb.Profiles.FirstOrDefault(u => u.USERID == id); var followed = db2.FollowLists.Where(x => x.UserID == profile.ID).Select(y => y.FollowProfile).ToList(); var IdList = db2.FollowLists.Where(x => x.UserID == profile.ID).Select(y => y.FollowedUserID).ToList(); IdList.Add(profile.ID); var postlist = db.Posts.Where(x => IdList.Contains(x.ProfileID)).OrderByDescending(x => x.PostDate).ToList(); var state = profile.STATE; var city = profile.CITY; var address = "+" + city + "," + "+" + state + "," + "+USA"; var requestUri = $"https://maps.googleapis.com/maps/api/geocode/json?address={address}&key=AIzaSyAvdkMhKjOodZKxdR-ZBj1ImZd6NE_1bCU"; var request = WebRequest.Create(requestUri); var response = request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream()); var json = reader.ReadToEnd(); dynamic information = JObject.Parse(json); double lat = Convert.ToDouble(information.results[0].geometry.location.lat, CultureInfo.InvariantCulture); var lng = Convert.ToDouble(information.results[0].geometry.location.lng, CultureInfo.InvariantCulture); var location = new Double[2]; location[0] = lat; location[1] = lng; List <PostComment> comments = new List <PostComment>(); foreach (Post post in postlist) { comments.AddRange(db3.PostComments.Where(x => x.PostID == post.ID).OrderByDescending(x => x.CommentDate).ToList()); } var viewModel = new UserHomeViewModel(profile, postlist, location, followed, comments); return(View(viewModel)); }
public IActionResult PropertyFilter(string Id) { UserHomeViewModel userGeneralViewModel = new UserHomeViewModel() { SliderProperties = db.Properties.Include(m => m.PropertyMode).Include(m => m.PropertyType).Where(m => m.isDealClosed == true && m.isDisplayed == true), OurServices = db.OurServices.OrderByDescending(m => m.Id), RecentProperties = db.Properties.Include(m => m.PropertyMode).Include(m => m.PropertyType).OrderByDescending(m => m.Id).Where(m => m.isDealClosed == false), PopularProperties = db.Properties.Include(m => m.PropertyMode).Include(m => m.PropertyType).Where(m => m.isDealClosed), PropertyModes = db.propertyModes, PropertyTypes = db.PropertyTypes, Testimonials = db.Testimonials.Include(m => m.User).Where(m => m.isApproved == true), AllProperties = db.Properties.Include(m => m.PropertyMode).Include(m => m.PropertyType), MenuProperties = db.Properties.Include(m => m.PropertyMode).Include(m => m.PropertyType).OrderByDescending(m => m.Id).Take(10), SocialMedia = db.SocialMedias.OrderByDescending(m => m.Id).FirstOrDefault() }; if (!string.IsNullOrEmpty(Id)) { userGeneralViewModel.RecentProperties = db.Properties.Include(m => m.PropertyMode).Include(m => m.PropertyType).OrderByDescending(m => m.Id).Where(m => m.Address.Contains(Id)); } return(View("PropertyList", userGeneralViewModel)); }
private UserHomeViewModel GetUserHomeIndexModel() { var userHomeViewModel = new UserHomeViewModel(); var pending = this.DbContext.Packages .Where(p => p.Recipient.Username == this.User.Username && p.Status == Status.Pending) .Select(p => new PackageHomeIndex { Id = p.Id, Description = p.Description }) .ToArray(); var shipped = this.DbContext.Packages .Where(p => p.Recipient.Username == this.User.Username && p.Status == Status.Shipped) .Select(p => new PackageHomeIndex { Id = p.Id, Description = p.Description }) .ToArray(); var delivered = this.DbContext.Packages .Where(p => p.Recipient.Username == this.User.Username && p.Status == Status.Delivered) .Select(p => new PackageHomeIndex { Id = p.Id, Description = p.Description }) .ToArray(); userHomeViewModel.Pending = pending; userHomeViewModel.Shipped = shipped; userHomeViewModel.Delivered = delivered; return(userHomeViewModel); }
/// <summary> /// Get all basic data for the user, /// all assignments, milestones and submissions for a specific course /// </summary> public UserHomeViewModel GetUserOverviewByUserName(string UserName, int?CourseID) { // first, finds all the courses. var UserCourses = (from Course in _db.Course join Connection in _db.UserCourse on Course.ID equals Connection.CourseID where Connection.UserName == UserName select new CourseViewModel { ID = Course.ID, Name = Course.Name }).ToList(); // if courseID is null, and the user is enrolled in a course, // then we return the first course by default. if (CourseID == null && UserCourses.Count > 0) { CourseID = UserCourses[0].ID; } // finally fill the viewmodel and then return it. var ViewModel = new UserHomeViewModel { Name = UserName, UserID = AMS.GetUserByName(UserName).ID, CourseID = CourseID, Courses = UserCourses, Assignments = AS.GetAssignmentsByCourseID(CourseID), Submissions = SS.GetUserSubmissionsByCourseID(UserName, CourseID) }; if (CourseID.HasValue) { ViewModel.CourseName = AMS.GetCourseByID(CourseID.Value).Name; } return(ViewModel); }
// // GET: /UserHome/UserHomeDonors public ActionResult UserHomeDonors() { //getting logged in userID and insuring some one is logged in if (Session["UserName"] == null) { return(RedirectToAction("", "")); } int loggedIN = Int32.Parse(Session["UserName"].ToString()); try { //view model contains queries and stores data var viewModel = new UserHomeViewModel(Session["UserName"].ToString()); viewModel.setDonorsFromMedicalID(loggedIN); return(View(viewModel)); } catch (Exception e) { //redirect to error page and pass message return(RedirectToAction("UserHomeError", "UserHome", new { message = "Error accessing donor list from database" })); } }
public async Task <IActionResult> UserHome() { var user = await _userManager.GetUserAsync(User); var catalouge = await _context.Items.ToListAsync(); var results = new List <Item>(); if (_context.RegisteredUsers.Find(user.UserName).isAdmin) { results = catalouge; } else { //get all items currently being sold by the user foreach (var item in catalouge) { if (item.seller.CompareTo(user.UserName) == 0) { results.Add(item); } } } //put result into viewmodel var model = new UserHomeViewModel(); model.itemsForSale = results; var sales = await _context.ItemSales.ToListAsync(); var relivantSales = new List <ItemSale>(); //get all sales bought from the user foreach (var item in sales) { if (item.item.seller.CompareTo(user.UserName) == 0) { relivantSales.Add(item); } } var transactions = await _context.Transactions.ToArrayAsync(); var relivantTransactions = new List <Transaction>(); //get all relivant transactions foreach (var item in transactions) { foreach (var sale in relivantSales) { if (sale.transactionID == item.transactionID) { relivantTransactions.Add(item); } } } var buyers = new List <String>(); //get a list of everyone who has bought from the user foreach (var item in relivantTransactions) { if (!buyers.Contains(item.buyer)) { buyers.Add(item.buyer); } } var spending = new List <double>(); //count the amount spent buy each user foreach (var item in buyers) { double total = 0; foreach (var sale in relivantTransactions) { if (sale.buyer.CompareTo(item) == 0) { total = total + sale.price; } } spending.Add(total); } var userSpending = new List <UserSpending>(); //collect relevent data var i = 0; while (i < buyers.Count) { var temp = new UserSpending { buyer = buyers[i], Spending = spending[i] }; userSpending.Add(temp); i++; } model.transactionHistory = userSpending; return(View(model)); }
public UserHome() { InitializeComponent(); viewModel = App.Locator.UserHome; BindingContext = viewModel; }
protected override void OnAppearing() { base.OnAppearing(); _vm = new UserHomeViewModel(); this.BindingContext = _vm; }
/// <summary> /// /// </summary> /// <param name="accessToken"></param> /// <param name="userName"></param> /// <returns></returns> public static UserHomeViewModel GetSubscriptions(string accessToken) { try { var organizations = GetUserOrganizations(accessToken); UserHomeViewModel vm = new UserHomeViewModel(); foreach (Organization org in organizations) { if (org.Id != null) { var subscriptions = GetUserSubscriptions(org.Id, accessToken); vm.Subscriptions = subscriptions; } } return vm; } catch (Exception ex) { throw ex; } }
public static UserHomeViewModel GetUsageDetailsBySubscriptionId(string subscriptionId, string subName, string orgId, string accessToken, string currency) { try { UserHomeViewModel vm = null; List<UsageDetail> usageDetails = null; var usagePayLoad = GetUsage(subscriptionId, orgId, accessToken); if (usagePayLoad != null && usagePayLoad.value != null && usagePayLoad.value.Count > 0) { vm = new UserHomeViewModel(); vm.SubscriptionId = subscriptionId; vm.SubscriptionName = subName; vm.Currency = currency; var rateCard = AzureResourceManagerUtil.GetRatesForSubscription(subscriptionId, accessToken, vm.Currency); if (usagePayLoad != null && usagePayLoad.value != null && usagePayLoad.value.Any()) { usageDetails = new List<UsageDetail>(); foreach (var usageAggregate in usagePayLoad.value) { var usageDetail = new UsageDetail(); usageDetail.UsageDetailId = usageAggregate.id; usageDetail.SubscriptionId = usageAggregate.properties.subscriptionId; usageDetail.UsageStartTime = usageAggregate.properties.usageStartTime; usageDetail.UsageEndTime = usageAggregate.properties.usageEndTime; usageDetail.MeterId = usageAggregate.properties.meterId; usageDetail.MeterName = usageAggregate.properties.meterName; usageDetail.MeterRegion = usageAggregate.properties.meterRegion; usageDetail.MeterCategory = usageAggregate.properties.meterCategory; usageDetail.Unit = usageAggregate.properties.unit; usageDetail.Region = usageAggregate.properties.infoFields.meteredRegion; usageDetail.Service = usageAggregate.properties.infoFields.meteredService; usageDetail.ResourceName = usageAggregate.properties.infoFields.project; usageDetail.Quantity = (decimal)usageAggregate.properties.quantity; var meter = rateCard.Meters.FirstOrDefault(m => m.MeterId == usageDetail.MeterId); if (meter != null && meter.MeterRates[0] != 0) { usageDetail.Cost = RoundTo2Digits(usageDetail.Quantity * meter.MeterRates[0]); if (usageDetail.Cost > 0) { usageDetail.CostPerUnit = meter.MeterRates[0]; usageDetails.Add(usageDetail); } } } vm.UsageDetails = usageDetails; } vm.UsageByResource = usageDetails.GroupBy(x => x.MeterCategory) .Select(g => new UsageDetail { MeterId = g.Key, Cost = g.Sum(x => x.Cost) }) .OrderByDescending(m => m.Cost).ToList(); } return vm; } catch (Exception ex) { throw ex; } }
public UserHomePage() { vm = new UserHomeViewModel(this); BindingContext = vm; InitializeComponent(); }