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 IHttpActionResult Update(InviteFriendDto dto)
        {
            //Recupero l'entity
            var oResult = _inviteFriendService.UpdateInviteFriend(dto);

            //Se ci sono stati errori, li notifico
            if (oResult.HasErrors())
            {
                Log4NetConfig.ApplicationLog.Warn(string.Format("Errore durante la modifica di un InviteFriend. id: {0}, nome: {1}, Cognome: {2}, Errors: {3}",
                                                                dto.Id, dto.Surname, dto.Firstname, oResult.GetValidationErrorsInline(" - ")));
                NHibernateHelper.SessionFactory.GetCurrentSession().Transaction.Rollback();
                return(ResponseMessage(Request.CreateResponse(HttpStatusCode.BadRequest, oResult)));
            }

            //Ritorno i risultati
            return(ResponseMessage(Request.CreateResponse(HttpStatusCode.OK)));
        }
        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
            });
        }