Esempio n. 1
0
        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
            });
        }
Esempio n. 2
0
        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
            });
        }
Esempio n. 3
0
        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"] }));
        }
Esempio n. 4
0
        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
            });
        }