public async Task CreateAsync(Guid id, Guid ownerId, string name, LocationDto location, string description, decimal fundsPerChild) { if (location == null) { throw new ServiceException("invalid_location", "Invalid location."); } Location foundLocation = null; if (!string.IsNullOrWhiteSpace(location.Address)) { foundLocation = await _locationProvider.GetAsync(location.Address); } if (foundLocation == null && (Math.Abs(location.Latitude) > 0.01 && Math.Abs(location.Longitude) > 0.01)) { foundLocation = await _locationProvider.GetAsync(location.Latitude, location.Longitude); } if (foundLocation == null) { throw new ServiceException("address_not_found", $"Address: '{location.Address} [lat: {location.Latitude}, " + $"lng: {location.Longitude}]' was not found."); } var ngo = new Ngo(id, ownerId, name, new Core.Domain.Shared.Location(foundLocation.Address, foundLocation.Latitude, foundLocation.Longitude), description, fundsPerChild); await _ngoRepository.CreateAsync(ngo); }
private static void IsValidNgo(Ngo user) { if (!(IsValidString(user.Username) && IsValidString(user.Name) && IsValidString(user.RegistrationNumber) && IsValidString(user.Password) && IsValidString(user.PhoneNumber) && IsValidString(user.Email) && IsValidString(user.Location.Description) && IsValidCoordinates(user.Location.Longitude, user.Location.Latitude))) { throw new BadRequestException("One of the required fields is empty"); } else if (!IsValidEmail(user.Email)) { throw new BadRequestException($"The Email {user.Email} is not a valid Email"); } else if (!IsValidPassword(user.Password)) { throw new BadRequestException("The Password is not valid, it should contain a number, a capital letter, and has a minimum of 8 characters"); } else if (!IsLebanesePhoneNumber(user.PhoneNumber)) { throw new BadRequestException("The phone number is incorrect, it should contain 8 digits"); } }
private async Task CreateNgoAsync(Guid ownerId, string name, string address, double latitude, double longitude, IEnumerable <User> users) { var location = new Location(address, latitude, longitude); var ngo = new Ngo(Guid.NewGuid(), ownerId, name, location, $"{name} description", fundsPerChild: 1500, approved: true); var children = CreateChildren(1500).ToList(); foreach (var child in children) { ngo.AddChild(child); } foreach (var user in users) { var donation = user.DonateNgo(Guid.NewGuid(), ngo, 600, "hash"); await Database.GetCollection <User>("Users").ReplaceOneAsync(x => x.Id == user.Id, user); ngo.DonateChildren(donation); } foreach (var child in children) { var childInfo = ngo.Children.Single(x => x.Id == child.Id); child.Donate(childInfo.GatheredFunds); } await Database.GetCollection <Ngo>("Ngos").InsertOneAsync(ngo); await Database.GetCollection <Child>("Children").InsertManyAsync(children); }
public void RegisterUser(string name, string email, string password, EAccountType role, ref IdentityResult result) { if (role == EAccountType.Volunteer) { Volunteer v = new Volunteer { Name = name, Email = email, UserName = email }; result = UserManager.Create(v, password); if (result.Succeeded) { UserManager.AddToRole(v.Id, role.ToString()); SignInManager.SignIn(v, isPersistent: false, rememberBrowser: false); } } else if (role == EAccountType.Ngo) { Ngo n = new Ngo() { Name = name, Email = email, UserName = email }; result = UserManager.Create(n, password); if (result.Succeeded) { UserManager.AddToRole(n.Id, role.ToString()); SignInManager.SignIn(n, isPersistent: false, rememberBrowser: false); } } }
public Donation DonateChild(Guid id, Ngo ngo, Guid childId, decimal value, string hash) { Donate(value); var donation = new Donation(id, this, ngo, childId, value, "child", hash); Donations.Add(donation); return(donation); }
public Donation DonateNgo(Guid id, Ngo ngo, decimal value, string hash) { Donate(value); var donation = new Donation(id, this, ngo, value, "ngo", hash); Donations.Add(donation); return(donation); }
public async Task AddNgo(Ngo ngo) { using IDbConnection connection = _sqlConnectionFactory.CreateConnection(); connection.Open(); var sql = new QueryBuilder().InsertInto("ngos", NgosTableColumns).Build(); var ngoEntity = ToNgoEntity(ngo); await connection.ExecuteAsync(sql, ngoEntity); await _locationStore.AddLocation(ngo.Username, ngo.Location); }
public Ngo Login(Ngo ngo) { Ngo element = context.Ngos.FirstOrDefault(u => u.Username == ngo.Username && u.Password == ngo.Password); if (element == null) { return(null); } return(element); }
public Donation(Guid id, User user, Ngo ngo, decimal value, string type, string hash) : base(id) { UserId = user.Id; Username = user.Username; NgoId = ngo.Id; NgoName = ngo.Name; Value = value; Type = type; Hash = hash; CreatedAt = DateTime.UtcNow; }
public string Register(Ngo ngo) { int count = context.Ngos.Count(); Ngo element = context.Ngos.FirstOrDefault(a => a.Ngo_Name == ngo.Ngo_Name); if (element != null && count != 0) { return("exist"); } context.Ngos.Add(ngo); context.SaveChanges(); return("created"); }
public ActionResult Create(FundraisingCampaign Fund) { FundraisingCampaign fund = new FundraisingCampaign(); Ngo ngo = us.UserManager.FindById(System.Web.HttpContext.Current.User.Identity.GetUserId()) as Ngo; fund.Name = Fund.Name; fund.Description = Fund.Description; fund.StartDate = Fund.StartDate; fund.EndDate = Fund.EndDate; fund.TargetAmount = Fund.TargetAmount; fund.OwnerNgoId = User.Identity.GetUserId(); fcService.Add(fund); fcService.Commit(); return(RedirectToAction("Index")); }
public Donation(Guid id, User user, Ngo ngo, Guid childId, decimal value, string type, string hash) : base(id) { UserId = user.Id; Username = user.Username; NgoId = ngo.Id; NgoName = ngo.Name; var child = ngo.Children.Single(x => x.Id == childId); ChildId = childId; ChildFullName = child.FullName; Value = value; Type = type; Hash = hash; CreatedAt = DateTime.UtcNow; }
public async Task UpdateNgo(Ngo ngo) { using IDbConnection connection = _sqlConnectionFactory.CreateConnection(); connection.Open(); var sql = new QueryBuilder().Update("ngos", NgosTableColumns) .Where($"Username = @Username").Build(); var ngoEntity = ToNgoEntity(ngo); int rowsAffected = await connection.ExecuteAsync(sql, ngoEntity); if (rowsAffected == 0) { throw new StorageErrorException($"Ngo entity with username {ngo.Username} was not found", 404); } await _locationStore.UpdateLocation(ngo.Username, ngo.Location); }
// GET FundraisingCampaign by NGO public IEnumerable FundraisingCompaignByNgo() { UserService us = new UserService(); List <FundraisingCampaign> Funds = new List <FundraisingCampaign>(); //var iduser = System.Web.HttpContext.Current.User.Identity.GetUserId(); Funds = ut.GetRepository <FundraisingCampaign>().GetAll().ToList(); Ngo ngo = us.UserManager.FindById(System.Web.HttpContext.Current.User.Identity.GetUserId()) as Ngo; foreach (var fund in Funds) { if (fund.OwnerNgo == ngo) { Funds.Remove(fund); } } return(Funds); }
public async Task UpdateNgo(Ngo ngo) { IsValidNgo(ngo); await _userStore.UpdateNgo(ngo); }
public async Task CreateAsync(Ngo ngo) => await _repository.CreateAsync(ngo);
public IEnumerable <Request> GetRequestsbyID(Ngo ngo) { return(db.Requests.Where(x => x.Ngo_id == ngo.Id)); }
private NgoEntity ToNgoEntity(Ngo ngo) { var entity = _mapper.Map <NgoEntity>(ngo); return(entity); }
public async Task UpdateAsync(Ngo ngo) => await _repository.UpdateAsync(ngo);
public async Task <IActionResult> UpdateNgo([FromBody] Ngo ngo) { await _userService.UpdateNgo(ngo); return(Ok()); }
public async Task <IActionResult> SignUp([FromBody] Ngo ngo) { await _userService.AddNgo(ngo); return(Ok()); }
public async Task AddNgo(Ngo ngo) { IsValidNgo(ngo); await _userStore.AddNgo(ngo); }