public OperationResult <object> DeleteInviteFriend(Guid?id) { //Validazione argomenti if (!id.HasValue) { throw new ArgumentNullException(nameof(id)); } //Dichiaro la listsa di risultati di ritorno IList <ValidationResult> vResults = new List <ValidationResult>(); //Definisco l'entità InviteFriend entity = _inviteFriendRepository.Load(id); //Eseguo la validazione logica vResults = ValidateEntity(entity); if (!vResults.Any()) { //Salvataggio su db _inviteFriendRepository.Delete(entity); } //Ritorno i risultati return(new OperationResult <object> { ReturnedValue = id, ValidationResults = vResults }); }
public OperationResult <object> CreateInviteFriend(InviteFriendDto dto) { //Validazione argomenti if (dto == null) { throw new ArgumentNullException(nameof(dto)); } //Dichiaro la lista di risultati di ritorno IList <ValidationResult> vResults = new List <ValidationResult>(); //Definisco l'entità InviteFriend entity = new InviteFriend(); entity.Firstname = dto.Firstname; entity.Surname = dto.Surname; entity.Email = dto.Email; entity.ProcessInstance = dto.ProcessInstanceId.HasValue ? _processInstanceRepository.Load(dto.ProcessInstanceId) : null; entity.ShowFrequenza = dto.ShowFrequenza; entity.ShowGlicemia = dto.ShowGlicemia; entity.ShowPeso = dto.ShowPeso; entity.ShowPressione = dto.ShowPressione; entity.ShowTemperatura = dto.ShowTemperatura; entity.ShowOssigeno = dto.ShowOssigeno; entity.ShowCamera = dto.ShowCamera; //Eseguo la validazione logica vResults = ValidateEntity(entity); if (!vResults.Any()) { //Creo l'utente di sistema per l'accesso UserDto user = new UserDto(); user.Email = dto.Email; user.Firstname = dto.Firstname; user.Surname = dto.Surname; user.Username = dto.Email; var userResult = _accountService.Register(user, null); if (userResult.HasErrors()) { return(userResult); } //Salvataggio su db _inviteFriendRepository.Save(entity); } //Ritorno i risultati return(new OperationResult <object> { ReturnedValue = entity.Id, ValidationResults = vResults }); }
public async Task <JsonResult> InviteFriend(InviteFriend model) { var currentUserId = User.Identity.GetUserId(); var currentUserName = User.Identity.GetUserName(); if (currentUserName == model.Email) { TempData["InviteMessage"] = $"This is you {model.Email} and already a member of Kheech."; return(Json(new { message = TempData["InviteMessage"] })); } var invitedFriendId = await _context.Users.Where(u => u.Email == model.Email).Select(u => u.Id).FirstOrDefaultAsync(); var isAlreadyFriend = await _context.Friendships.Include(f => f.Recipient) .Include(f => f.Initiator) .FirstOrDefaultAsync(f => (f.InitiatorId == currentUserId && f.RecipientId == invitedFriendId) || (f.InitiatorId == invitedFriendId && f.RecipientId == currentUserId)); if (isAlreadyFriend != null) { TempData["InviteMessage"] = $"You are already friends with {model.Email}"; return(Json(new { message = TempData["InviteMessage"] })); } var invite = new InviteFriend { ApplicationUserId = currentUserId, Email = model.Email, FriendshipStatusId = 1, InsertDate = DateTime.UtcNow }; _context.InviteFriends.Add(invite); await _context.SaveChangesAsync(); var subject = "Invitation to Kheech - Breaking Bread"; var message = $"you are invited to join the best app to achedule a meeting with friends. Please click the link below: {ConfigurationManager.AppSettings["SiteUrlBase"]}"; var sendGridClient = new SendGridEmailClient(ConfigurationManager.AppSettings["SendGridApiKey"]); await sendGridClient.SendEmailAsync(model.Email, subject, message); TempData["InviteMessage"] = "Your invite has been sent."; return(Json(new { result = true, message = TempData["InviteMessage"] })); }
public OperationResult <object> UpdateInviteFriend(InviteFriendDto dto) { //Validazione argomenti if (dto == null) { throw new ArgumentNullException(nameof(dto)); } //Dichiaro la lista di risultati di ritorno IList <ValidationResult> vResults = new List <ValidationResult>(); //Definisco l'entità InviteFriend entity = _inviteFriendRepository.Load(dto.Id); entity.Firstname = dto.Firstname; entity.Surname = dto.Surname; entity.Email = dto.Email; entity.ShowFrequenza = dto.ShowFrequenza; entity.ShowGlicemia = dto.ShowGlicemia; entity.ShowPeso = dto.ShowPeso; entity.ShowPressione = dto.ShowPressione; entity.ShowTemperatura = dto.ShowTemperatura; entity.ShowOssigeno = dto.ShowOssigeno; entity.ShowCamera = dto.ShowCamera; //Eseguo la validazione logica vResults = ValidateEntity(entity); if (!vResults.Any()) { //Salvataggio su db _inviteFriendRepository.Save(entity); } //Ritorno i risultati return(new OperationResult <object> { ReturnedValue = entity.Id, ValidationResults = vResults }); }