public void SendActivationRequest(ActivationRequest activationRequest)
        {
            Template activationTemplate = _templateRepository.Get("ActivationTemplate.html");
            string   notification       = activationTemplate.Apply(activationRequest.ToDictionary());

            _notificationSender.SendNotification(notification, activationRequest.Email.Value);
        }
Exemplo n.º 2
0
 public ActivationResponse Activate(string[] barcodes)
 {
     using (var client = new HttpClient())
     {
         var url     = $"{ConfigurationManager.AppSettings["EnterativeActivationApi"]}";
         var request = new ActivationRequest
         {
             ActivationType = "VIRTUAL",
             Merchant       = ConfigurationManager.AppSettings["EnterativeMerchant"],
             Shop           = ConfigurationManager.AppSettings["EnterativeShop"],
             Terminal       = ConfigurationManager.AppSettings["EnterativeTerminal"],
             CallbackURL    = ConfigurationManager.AppSettings["EnterativeCallBackUrl"],
             Lines          = barcodes.Select(b =>
                                              new Line
             {
                 Barcode      = b,
                 ExternalCode = $"WOW-{DateTime.Now:yyyyMMddhhmmddss}"
             }).ToList()
         };
         var xml = request.ToString();
         using (var stringContent = new StringContent(xml, Encoding.UTF8, "application/json"))
         {
             var resp = client.PostAsync(url, stringContent).Result;
             resp.EnsureSuccessStatusCode();
             var jsonResult = resp.Content.ReadAsStringAsync().Result;
             var response   = JsonConvert.DeserializeObject <ActivationResponse>(jsonResult);
             if (response.Response != "E00")
             {
                 throw new Exception($"ERRO AO CHAMAR API DE ATIVAÇÃO ENTERATIVE - CODIGO {response.Response}");
             }
             return(response);
         }
     }
 }
Exemplo n.º 3
0
        /// <summary>
        /// Validates the Given OTP
        /// </summary>
        /// <returns></returns>
        public static string ValidateForActivation(ActivationRequest inputuser, User dbUser, bool isResetPwd)
        {
            String statusMsg = string.Empty;

            if (dbUser.IsActivated && !isResetPwd)
            {
                statusMsg = ErrorCodes.USER_ALREADY_ACTIVATED.ToString();
            }
            else if (HttpUtility.HtmlDecode(dbUser.OTPCode) != inputuser.OTPCode)
            {
                statusMsg = ErrorCodes.INVALID_OTP_CODE.ToString();
            }
            else if (DateTimeOffset.UtcNow > dbUser.OTPGeneratedAt.Value.AddMinutes(Convert.ToInt64(ConfigurationManager.AppSettings[Constants.OTP_TIME_CONN_STRING])))
            {
                statusMsg = ErrorCodes.OTP_EXPIRED.ToString();
            }
            else if (!dbUser.IsActivated && isResetPwd)
            {
                statusMsg = ErrorCodes.USER_NOT_ACVTD.ToString();
            }
            else if (dbUser != null && dbUser.Domain.IsActive == false)
            {
                statusMsg = ErrorCodes.DOMAIN_IS_INACTIVE.ToString();
            }
            else
            {
                statusMsg = Constants.SUCCESS_MSG;
            }
            return(statusMsg);
        }
Exemplo n.º 4
0
        public override async Task <ActivationReply> ActivateUser(ActivationRequest request, ServerCallContext context)
        {
            try
            {
                var op = await dataAccess.GetUserByEmail(request.Email);

                if (op != null && op.otp == request.ActivationKey)
                {
                    if (await dataAccess.ActivateUser(op.userID))
                    {
                        return(new ActivationReply {
                            ErrorCode = ErrorCode.Success
                        });
                    }
                }
                return(new ActivationReply {
                    ErrorCode = ErrorCode.Fail
                });
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                return(new ActivationReply {
                    ErrorCode = ErrorCode.FailUnknown
                });
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Activates a License
        /// the License must be valid and non activated
        /// there can only be one activation of a SerialNumber
        /// If the Activation is successful the SerialNumber and ActivationKey will be inserted into the local database.
        /// It will throw a ActivationFailedException if the ManastoneServer delivers no or an empty Offer.
        /// </summary>
        /// <param name="req">an ActivationRequest containing the SerialNumber and the CPU1 ID</param>
        private void Activate(ActivationRequest req)
        {
            try
            {
                _database.Log.AddToLogList(FnLog.FnLog.LogType.MajorDrmLog, "Activate", "req " + req.SerialNumber +
                                           " " + req.ProductUUID + " " + req.HardwareId);                                              //DEBUG

                _database.Log.AddToLogList(FnLog.FnLog.LogType.MajorDrmLog, "Activate", "Start");
                var activationKey =
                    SocketIoClient.RetrieveSingleValue <ActivationOffer>(_url, "ActivationOffer", "ActivationRequest",
                                                                         req.Serialize(), timeout: _timeout);
                _database.Log.AddToLogList(FnLog.FnLog.LogType.MajorDrmLog, "Activate", "ActivationOffer " + activationKey.ActivationKey.Length);
                _database.Log.AddToLogList(FnLog.FnLog.LogType.MajorDrmLog, "Activate", "ActivationOffer " + activationKey.Serialize());

                if (activationKey.ActivationKey.Length == 0)
                {
                    throw new ActivationFailedException("Length == 0");
                }
                _database.Log.AddToLogList(FnLog.FnLog.LogType.MajorDrmLog, "Activate", "Before SerialInsertion");
                _database.InsertSerialNumber(req.SerialNumber);
                _database.Log.AddToLogList(FnLog.FnLog.LogType.MajorDrmLog, "Activate", "Before ActivationKeyInsertion");
                _database.InsertActivationKey(req.SerialNumber, activationKey.ActivationKey);
                RetrieveToken(new TokenRequest(activationKey.ActivationKey));
                RetrieveCustomerReference(new CustomerReferenceRequest(activationKey.ActivationKey));
                _database.Log.AddToLogList(FnLog.FnLog.LogType.MajorDrmLog, "Activate", "Complete");
                _database.Log.ProcessLogList();
            }
            catch (Exception e)
            {
                _database.Log.AddToLogList(FnLog.FnLog.LogType.DrmError, "ERROR on ACTIVATE", e.Message);
                _database.Log.ProcessLogList();
                throw new ActivationFailedException();
            }
        }
Exemplo n.º 6
0
        public async Task <ActivationResponse> ActivateAsync(string token)
        {
            var request = new ActivationRequest
            {
                Token = token
            };
            var result = await HttpClient.PostAsJsonAsync("api/Player/Activate", request);

            return(await EnsureApiResult <ActivationResponse>(result));
        }
Exemplo n.º 7
0
        public void RequestActivationKey(List <CheckableDataGridViewRow> rowsChecked)
        {
            List <Host> checkedHosts = RowsToHosts(rowsChecked.ConvertAll(r => r as LicenseDataGridViewRow));

            ActivationRequest.Hosts = checkedHosts;
            using (MemoryStream ms = ActivationRequest.CreateRequestBestEffort())
            {
                ActivationRequestCommand activationRequestCommand = new ActivationRequestCommand(CommandInterface, ActivationRequest.RequestEncoding.GetString(ms.ToArray()));
                activationRequestCommand.Execute();
            }
        }
Exemplo n.º 8
0
        public ActivationResponse Activate(ActivationRequest request)
        {
            var token     = request.Token;
            var activated = _commands.ActivateViaEmail(token);

            return(new ActivationResponse
            {
                Activated = activated,
                Token = token
            });
        }
 public object Put(ActivationRequest request)
 {
     try
     {
         IntegrationService.Reset();
     }
     catch (Exception ex)
     {
         return(ServerError(ex.Message));
     }
     return(OK());
 }
Exemplo n.º 10
0
        public ActivationResponse ActivateUser(ActivationRequest req)
        {
            req.ActivationCode = Cryptography.Decrypt(req.ActivationCode);
            UserActivation UserAction = _context.UserActivations.Include(x => x.User)
                                        .Where(p => p.ActivationCode == req.ActivationCode && p.ActivationType == ActivationType.UserActivation)
                                        .Select(s => s).FirstOrDefault();

            UserAction.User.Active           = true;
            UserAction.isActivated           = true;
            UserAction.ActivationChannelType = ActivationChannelType.Email;
            _context.SaveChangesAsync();
            return(UserAction.Adapt <ActivationResponse>());
        }
        public async Task <PID?> GetAsync(ClusterIdentity clusterIdentity, CancellationToken ct)
        {
            ct = CancellationTokens.WithTimeout(_getPidTimeout);
            //Get address to node owning this ID
            var identityOwner = _partitionManager.Selector.GetIdentityOwner(clusterIdentity.Identity);

            Logger.LogDebug("Identity belongs to {address}", identityOwner);
            if (string.IsNullOrEmpty(identityOwner))
            {
                return(null);
            }

            var remotePid = PartitionManager.RemotePartitionIdentityActor(identityOwner);

            var req = new ActivationRequest
            {
                ClusterIdentity = clusterIdentity
            };

            Logger.LogDebug("Requesting remote PID from {Partition}:{Remote} {@Request}", identityOwner, remotePid, req
                            );

            try
            {
                var resp = await _cluster.System.Root.RequestAsync <ActivationResponse>(remotePid, req, ct);

                return(resp.Pid);
            }
            //TODO: decide if we throw or return null
            catch (DeadLetterException)
            {
                Logger.LogInformation("Remote PID request deadletter {@Request}, identity Owner {Owner}", req, identityOwner);
                return(null);
            }
            catch (TimeoutException)
            {
                Logger.LogInformation("Remote PID request timeout {@Request}, identity Owner {Owner}", req, identityOwner);
                return(null);
            }
            catch (Exception e)
            {
                Logger.LogError(e, "Error occured requesting remote PID {@Request}, identity Owner {Owner}", req, identityOwner);
                return(null);
            }
        }
Exemplo n.º 12
0
        public IHttpActionResult ForgotPassword(ActivationRequest request)
        {
            try
            {
                var user = DbUtilities.GetUserByEmail(request.Email);
                if (user != null)
                {
                    string validStatus = ValidationUtilities.ValidateForActivation(request, user, true);
                    if (validStatus == Constants.SUCCESS_MSG)
                    {
                        User account = _context.Users.Where(a => a.Email == request.Email).SingleOrDefault();
                        //if (IsPasswordCorrect(request.Password, account))
                        //    return BadRequest(ErrorCodes.PASSWORD_ALREADY_USED.ToString());
                        byte[] pwdhash = AuthorizationUtilities.hash(request.Password, account.Salt);

                        //  account.UpdatedAt = DateTime.UtcNow;
                        account.ModifiedBy  = request.Email;
                        account.IsActivated = true;
                        account.OTPCode     = "";

                        //add the new password to the database
                        account.Password     = pwdhash;
                        account.PwdStartDate = DateTimeOffset.UtcNow;
                        account.IsLocked     = false;
                        _context.SaveChanges();
                        return(Ok(HttpUtilities.CustomResp(ErrorCodes.PWD_UPDATED.ToString())));
                    }
                    else
                    {
                        return(BadRequest(validStatus));
                    }
                }
                else
                {
                    //user doesn't exists
                    return(BadRequest(ErrorCodes.INVALID_USER.ToString()));
                }
            }
            catch (Exception ex)
            {
                LGSELogger.Error(ex);
                return(InternalServerError(ex));
            }
        }
Exemplo n.º 13
0
        public IHttpActionResult ActivateUser(ActivationRequest request)
        {
            try
            {
                var dbUser = DbUtilities.GetUserByEmail(request.Email);
                if (dbUser != null)
                {
                    string validStatus = DbUtilities.ValidateForActivation(request, dbUser, false);
                    if (validStatus == Constants.SUCCESS_MSG)
                    {
                        //Need to get Oorg id based on domain
                        byte[] salt = AuthorizationUtilities.generateSalt();

                        User account = _context.Users.SingleOrDefault(a => a.Email == request.Email);
                        //    account.UpdatedAt = DateTime.UtcNow;
                        account.ModifiedBy  = request.Email;
                        account.Salt        = salt;
                        account.Password    = AuthorizationUtilities.hash(request.Password, salt);
                        account.IsActivated = true;
                        account.OTPCode     = "";
                        _context.SaveChanges();
                        return(Ok(HttpUtilities.CustomResp(ErrorCodes.USER_ACTIVATED.ToString())));
                    }
                    else
                    {
                        return(BadRequest(validStatus));
                    }
                }
                else
                {
                    return(BadRequest(ErrorCodes.INVALID_USER.ToString()));
                }
            }
            catch (Exception ex)
            {
                LGSELogger.Error(ex);
                return(InternalServerError(ex));
            }
        }
        public static string GetActivationRequest(string licenseKey, string productId, List <ActivationMetadata> metadata, List <ActivationMeterAttribute> meterAttributes)
        {
            var activationRequest = new ActivationRequest();

            activationRequest.Fingerprint     = LexSystemInfo.GetFingerPrint();
            activationRequest.ProductId       = productId;
            activationRequest.Key             = licenseKey;
            activationRequest.Os              = LexSystemInfo.GetOsName();
            activationRequest.OsVersion       = LexSystemInfo.GetOsVersion();
            activationRequest.UserHash        = LexEncryptionService.Sha256(LexSystemInfo.GetUser());
            activationRequest.AppVersion      = LexDataStore.AppVersion;
            activationRequest.ClientVersion   = LexDataStore.ClientVersion;
            activationRequest.VmName          = LexSystemInfo.GetVmName();
            activationRequest.Hostname        = LexSystemInfo.GetHostname();
            activationRequest.Email           = String.Empty;
            activationRequest.Password        = String.Empty;
            activationRequest.Metadata        = metadata;
            activationRequest.MeterAttributes = meterAttributes;
            string jsonBody = JsonConvert.SerializeObject(activationRequest);

            return(jsonBody);
        }
        public void DumpState(ClusterIdentity clusterIdentity)
        {
            Console.WriteLine("Memberlist members:");
            _cluster.MemberList.DumpState();

            Console.WriteLine("Partition manager selector:");
            _partitionManager.Selector.DumpState();

            //Get address to node owning this ID
            var identityOwner = _partitionManager.Selector.GetIdentityOwner(clusterIdentity.Identity);

            Console.WriteLine("Identity owner for ID:");
            Console.WriteLine(identityOwner);

            var remotePid = PartitionManager.RemotePartitionIdentityActor(identityOwner);

            var req = new ActivationRequest
            {
                ClusterIdentity = clusterIdentity
            };

            var resp = _cluster.System.Root.RequestAsync <ActivationResponse>(remotePid, req, CancellationTokens.WithTimeout(5000)).Result;

            Console.WriteLine("Target Pid:");

            if (resp == null)
            {
                Console.WriteLine("Null response");
            }
            else if (resp.Pid == null)
            {
                Console.WriteLine("Null PID");
            }
            else
            {
                Console.WriteLine(resp.Pid);
            }
        }
Exemplo n.º 16
0
        public Response <ActivationResponse> ActivationBackLink(ActivationRequest req)
        {
            Response <ActivationResponse> _response = new Response <ActivationResponse>();

            try
            {
                _response.RequestState = true;
                if (ModelState.IsValid)
                {
                    _response.Data = _userManager.ActivateUser(req);
                }
                else
                {
                    _response.ErrorState = true;
                    _response.StatusCode = HttpStatusCode.BadRequest;
                }
            }
            catch (Exception ex)
            {
                _response.ErrorState = true;
                _response.ErrorList.Add(ex.Adapt <ApiException>());
            }
            return(_response);
        }
		public object Put(ActivationRequest request)
		{
			try
			{
				IntegrationService.Reset();
			}
			catch (Exception ex)
			{
				return ServerError(ex.Message);
			}
			return OK();
		}
 public Task <ActivationResponse> ActivateCard(ActivationRequest request)
 {
     throw new System.NotImplementedException();
 }
Exemplo n.º 19
0
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "v1/ActivateLicense")] HttpRequest req,
            ILogger log)
        {
            try
            {
                var conn       = System.Environment.GetEnvironmentVariable("MongoDBConnectionString");
                var client     = new MongoClient(conn);
                var dbName     = System.Environment.GetEnvironmentVariable("license_management_db");
                var database   = client.GetDatabase(dbName);
                var collection = database.GetCollection <ActivationRequest>(
                    System.Environment.GetEnvironmentVariable("activation_requests_col")
                    );

                var licenses_col = database.GetCollection <License>(
                    System.Environment.GetEnvironmentVariable("licenses_col")
                    );

                var activationcodes_col = database.GetCollection <ActivationCode>(
                    System.Environment.GetEnvironmentVariable("activation_codes_col")
                    );



                string            requestBody       = await new StreamReader(req.Body).ReadToEndAsync();
                ActivationRequest activationRequest = JsonConvert.DeserializeObject <ActivationRequest>(requestBody);
                activationRequest.RequestDate = DateTime.UtcNow;

                var findActivationCodeResult = activationcodes_col.Find(q => q.GuidCode == activationRequest.ActivationCode).ToList();

                //Activation Code not exists, then do nothing
                if (findActivationCodeResult.Count == 0)
                {
                    activationRequest.Status           = "Failed";
                    activationRequest.ActivationResult = "Activation code not exists.";
                    await collection.InsertOneAsync(activationRequest);

                    BasicResponse response = new BasicResponse();
                    response.Status  = "OK";
                    response.Code    = "Failed";
                    response.Message = "Activation code could not be validated.";

                    return(new OkObjectResult(response));
                }

                License license = new License();
                license.ActivationCode = activationRequest.ActivationCode;

                var findLicensesResult = licenses_col.Find(q => q.ActivationCode == license.ActivationCode).ToList();

                if (findLicensesResult.Count > 0)
                {
                    // Greater than 0 means there is a license assined
                    activationRequest.Status           = "Failed";
                    activationRequest.ActivationResult = "Activation code is already assigned";
                    await collection.InsertOneAsync(activationRequest);

                    BasicResponse response = new BasicResponse();
                    response.Status  = "OK";
                    response.Code    = "Failed";
                    response.Message = "License could not be activated.";

                    return(new OkObjectResult(response));
                }
                else
                {
                    // 0 means there is not a license assined

                    ActivationCode activationCode = findActivationCodeResult[0];

                    List <string> activationSettings_ValueList = activationRequest.ActivationSettings.GetValueList();

                    // Generate hash only for settings
                    string license_hashsettings = Crypto.concatenate_sha256_hash(activationSettings_ValueList);

                    activationSettings_ValueList.Add(activationRequest.ActivationCode);

                    // Generate hash adding activation code for generate license code
                    activationRequest.ActivationSettings.HashSettings = Crypto.concatenate_sha256_hash(activationSettings_ValueList);

                    license.LicenseHash = activationRequest.ActivationSettings.HashSettings;

                    license.LicenseSettings              = new LicenseSettings();
                    license.LifeTime                     = activationCode.LifeTime;
                    license.Type                         = activationCode.LicenseType;
                    license.LicenseSettings.Company      = activationRequest.ActivationSettings.Company;
                    license.LicenseSettings.CustomerCode = activationRequest.ActivationSettings.CustomerCode;
                    license.LicenseSettings.Email        = activationRequest.ActivationSettings.Email;
                    license.LicenseSettings.HardwareId   = activationRequest.ActivationSettings.HardwareId;
                    license.LicenseSettings.Location     = activationRequest.ActivationSettings.Location;
                    license.ActivationDate               = DateTime.UtcNow;
                    license.LicenseSettings.HashSettings = license_hashsettings;
                    license.Status                       = "Active";



                    await licenses_col.InsertOneAsync(license);

                    activationRequest.Status           = "Success";
                    activationRequest.ActivationResult = "License has been assigned and activated.";
                    await collection.InsertOneAsync(activationRequest);

                    LicenseActivationSuccessResponse response = new LicenseActivationSuccessResponse();
                    response.Status      = "OK";
                    response.Code        = "Success";
                    response.Message     = "License has been assigned and activated.";
                    response.LicenseCode = license.LicenseHash;

                    return(new OkObjectResult(response));
                }
            }
            catch (System.Exception e)
            {
                BasicResponse response = new BasicResponse();

                response.Status  = "OK";
                response.Code    = "Excepcion";
                response.Message = e.Message;

                return(new OkObjectResult(response));
            }
        }
 public Task <ActivationResponse> RegisterAndActivateCard(ActivationRequest request)
 {
     return(_cardManagementRepository.ActivateCard(request));
 }