Example #1
0
 public User(string name, int age, bool enabled, RegisterStatus status)
 {
     Name    = name;
     Age     = age;
     Enabled = enabled;
     Status  = status;
 }
        public IActionResult Index([FromBody] RegisterDTO Register)
        {
            // RegisterStatus to return
            RegisterStatus objRegisterStatus = new RegisterStatus();

            objRegisterStatus.status       = "Registration Failure";
            objRegisterStatus.isSuccessful = false;

            // Only allow Registration for non-Super Admins if it is turned on in Settings
            GeneralSettings objGeneralSettings = new GeneralSettings(GetConnectionString());

            if (
                (!objGeneralSettings.AllowRegistration) &&
                (!UtilitySecurity.IsSuperUser(this.User.Identity.Name, GetConnectionString())))
            {
                objRegisterStatus.status       = "Registration is not allowed for non-Administrators.";
                objRegisterStatus.isSuccessful = false;
            }
            else
            {
                string strCurrentHostLocation = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}";
                objRegisterStatus = RegisterUser(Register, GetConnectionString(), _hostEnvironment, _userManager, _signInManager, strCurrentHostLocation, false, true);
            }

            return(Ok(objRegisterStatus));
        }
Example #3
0
        public static string GetInfo(this RegisterStatus status)
        {
            switch (status)
            {
            case RegisterStatus.UsedName:
                return("Error.nameAlreadyInUse");

            case RegisterStatus.OK:
                return("OK");
            }
            throw new ArgumentException("status");
        }
Example #4
0
        public static string GetInfo(this RegisterStatus status)
        {
            switch (status)
            {
            case RegisterStatus.UsedName:
                return("Duplicate Email");    // maybe not wise to give this info out...

            case RegisterStatus.OK:
                return("OK");
            }
            throw new ArgumentException("status");
        }
Example #5
0
        public static string GetInfo(this RegisterStatus status)
        {
            switch (status)
            {
            case RegisterStatus.UsedName:
                return("Duplicated Name");

            case RegisterStatus.OK:
                return("OK");
            }
            throw new ArgumentException("status");
        }
Example #6
0
        public static string ToRegisterStatusString(this RegisterStatus source)
        {
            switch (source)
            {
            case RegisterStatus.WasNot: return("Не состоял");

            case RegisterStatus.Drug: return("В наркодиспансере");

            case RegisterStatus.Psych: return("В психдиспансере");

            case RegisterStatus.Police: return("В полиции");
            }

            return(string.Empty);
        }
Example #7
0
        // guid, newGUID, newPassword
        // <Error>Error.invalidEmail</Error>
        // <Error>LinkWebAccountDialog.matchErrorSame</Error>
        protected override void HandleRequest()
        {
            if (!IsValidEmail(Query["newGUID"]) || Query["newPassword"] == null || Query["guid"] == null)
            {
                WriteErrorLine("Invalid email");
            }
            else
            {
                string key       = Database.REG_LOCK;
                string lockToken = null;
                try
                {
                    while ((lockToken = Database.AcquireLock(key)) == null)
                    {
                        ;
                    }

                    DbAccount   acc;
                    LoginStatus status = Database.Verify(Query["guid"], "", out acc);
                    if (status == LoginStatus.OK)
                    {
                        //what? can register in game? kill the account lock
                        Database.RenameUUID(acc, Query["newGUID"], lockToken);
                        Database.ChangePassword(acc.UUID, Query["newPassword"]);
                        WriteLine("<Success />");
                    }
                    else
                    {
                        RegisterStatus s = Database.Register(Query["newGUID"], Query["newPassword"], false, out acc);
                        if (s == RegisterStatus.OK)
                        {
                            WriteLine("<Success />");
                        }
                        else
                        {
                            WriteErrorLine(s.GetInfo());
                        }
                    }
                }
                finally
                {
                    if (lockToken != null)
                    {
                        Database.ReleaseLock(key, lockToken);
                    }
                }
            }
        }
Example #8
0
        public async void CheckUserExists()
        {
            RegisterStatus status = await _loginService.CheckUserExists(DeviceUtility.DeviceId);

            if (status.GetStatus == (int)UserStatus.RegisteredAndApproved)
            {
                IsLoading = false;
                GoToMapScreen();
            }
            else
            {
                ShowAlert(status.GetDescription);
            }

            IsLoading = false;
        }
Example #9
0
        public async void ClickHandler(object sender, EventArgs e)
        {
            EditText editTextName    = FindViewById <EditText> (Resource.Id.editText_name);
            EditText editTextComment = FindViewById <EditText> (Resource.Id.editText_comment);

            ProgressDialog progressDialog = ProgressDialog.Show(this, string.Empty, Resources.GetString(Resource.String.Wait), true, false);

            RegisterStatus result = await _loginService.Register(editTextName.Text, editTextComment.Text, DeviceUtility.DeviceId);

            if (result.GetStatus != (int)UserStatus.RegisteredAndApproved)
            {
                progressDialog.Dismiss();
                _toastService.ShowMessage(result.GetDescription);
                return;
            }

            GoToMapScreen();
        }
Example #10
0
        private void registerLogic(string username, string password, string firstName, string lastName, string email)
        {
            JObject obj = new APICaller("register.php")
                          .AddParam("username", username)
                          .AddParam("password", password)
                          .AddParam("firstName", firstName)
                          .AddParam("lastName", lastName)
                          .AddParam("email", email)
                          .Call();

            Console.WriteLine(obj);
            RegisterStatus status = RegisterStatus.UnknownError;

            if (!Enum.TryParse <RegisterStatus>(obj["message"].ToString(), out status))
            {
                status = RegisterStatus.UnknownError;
            }
            RegisterResult(status);
        }
Example #11
0
        public void handleRegister()
        {
            if (RPassword != RRepeatPassword)
            {
                XtraMessageBox.Show("确认密码不一致,请重新输入", "信息提示");
                return;
            }
            RegisterStatus rs = ls.Register(RName, RUsername);

            switch (rs)
            {
            case RegisterStatus.NameDuplicate:
                XtraMessageBox.Show("真实姓名已有,请重新输入", "信息提示");
                break;

            case RegisterStatus.UsernameDuplicate:
                XtraMessageBox.Show("用户名已有,请重新输入", "信息提示");
                break;

            case RegisterStatus.Nullerr:
                XtraMessageBox.Show("真实姓名或用户名不能为空,请重新输入", "信息提示");
                break;

            case RegisterStatus.Success:
                User u = new User()
                {
                    name     = RName,
                    username = RUsername,
                    psw      = RPassword
                };
                if (um.Insert(u) > 0)
                {
                    XtraMessageBox.Show("注册成功", "信息提示");
                    handleReset();
                }
                break;

            default:
                break;
            }
        }
Example #12
0
        private void KeyController_RegisterHotKeyEvent(KeyHandler key, RegisterStatus type)
        {
            string registerMsg = string.Empty;

            switch (type)
            {
            case RegisterStatus.FAILURE:
                registerMsg = string.Format("Register hot keys {0} failed.", key.Key.ToString());
                break;

            case RegisterStatus.SUCCESS:
                registerMsg = string.Format("Register hot keys {0} succeed.", key.Key.ToString());
                break;

            case RegisterStatus.UNREGISTERED:
                registerMsg = string.Format("Unregister hot keys {0} succeed.", key.Key.ToString());
                break;

            case RegisterStatus.UNREGISTER_FAILED:
                registerMsg = string.Format("Unregister hot keys {0} failed.", key.Key.ToString());
                break;
            }
            MessagerEvent?.Invoke(MessageType.MESSAGE, registerMsg);
        }
Example #13
0
 public void SetValue(int value)
 {
     this.Value  = value;
     this.Status = RegisterStatus.Set;
 }
Example #14
0
 public Register()
 {
     this.Status = RegisterStatus.NotSet;
 }
        protected override void HandleMessage(Client client, HELLO message)
        {
            KeyValuePair <string, bool> versionStatus = Settings.CheckClientVersion(message.BuildVersion);

            if (!versionStatus.Value)
            {
                client.SendMessage(new FAILURE
                {
                    ErrorId          = (int)FailureIDs.JSON_DIALOG,
                    ErrorDescription =
                        JSONErrorIDHandler.
                        FormatedJSONError(
                            errorID: ErrorIDs.OUTDATED_CLIENT,
                            labels: new[] { "{CLIENT_BUILD_VERSION}", "{SERVER_BUILD_VERSION}" },
                            arguments: new[] { message.BuildVersion, versionStatus.Key }
                            )
                });

                Manager.TryDisconnect(client, DisconnectReason.OUTDATED_CLIENT);

                return;
            }

            LoginStatus s1 = Manager.Database.Verify(message.GUID, message.Password, out DbAccount acc);

            if (s1 == LoginStatus.AccountNotExists)
            {
                RegisterStatus s2 = Manager.Database.Register(message.GUID, message.Password, true, out acc); //Register guest but do not allow join game.

                client.SendMessage(new FAILURE()
                {
                    ErrorId          = (int)FailureIDs.JSON_DIALOG,
                    ErrorDescription =
                        JSONErrorIDHandler.
                        FormatedJSONError(
                            errorID: ErrorIDs.DISABLE_GUEST_ACCOUNT,
                            labels: null,
                            arguments: null
                            )
                });

                Manager.TryDisconnect(client, DisconnectReason.DISABLE_GUEST_ACCOUNT);

                return;
            }
            else if (s1 == LoginStatus.InvalidCredentials)
            {
                client.SendMessage(new FAILURE
                {
                    ErrorId          = (int)FailureIDs.DEFAULT,
                    ErrorDescription = "Bad login."
                });

                Manager.TryDisconnect(client, DisconnectReason.BAD_LOGIN);
            }

            client.ConnectedBuild = message.BuildVersion;
            client.Account        = acc;
            client.AccountId      = acc.AccountId;

            if (AccountInUseManager.ContainsKey(client.AccountId))
            {
                do
                {
                    double timeout = client.CheckAccountInUseTimeout;

                    if (timeout <= 0)
                    {
                        break;
                    }

                    List <Message> outgoing = new List <Message>
                    {
                        new FAILURE
                        {
                            ErrorId          = (int)ErrorIDs.NORMAL_CONNECTION,
                            ErrorDescription = $"Account in use ({timeout:n0} second{(timeout > 1 ? "s" : "")} until timeout)."
                        },
                        new FAILURE
                        {
                            ErrorId          = (int)ErrorIDs.NORMAL_CONNECTION,
                            ErrorDescription = $"Connection failed! Retrying..."
                        }
                    };

                    client.SendMessage(outgoing);

                    Thread.Sleep(3 * 1000);

                    if (client.CheckAccountInUseTimeout <= 0)
                    {
                        break;
                    }
                } while (client.Socket.Connected && client.State != ProtocolState.Disconnected);

                client.RemoveAccountInUse();
            }

            ConnectionProtocol TryConnect = Manager.TryConnect(client);

            if (!TryConnect.Connected)
            {
                ErrorIDs         errorID = TryConnect.ErrorID;
                string[]         labels;
                string[]         arguments;
                DisconnectReason reason;

                switch (errorID)
                {
                case ErrorIDs.SERVER_FULL:
                {
                    labels    = new[] { "{MAX_USAGE}" };
                    arguments = new[] { Manager.MaxClients.ToString() };
                    reason    = DisconnectReason.SERVER_FULL;
                }
                break;

                case ErrorIDs.ACCOUNT_BANNED:
                {
                    labels    = new[] { "{CLIENT_NAME}" };
                    arguments = new[] { acc.Name };
                    reason    = DisconnectReason.ACCOUNT_BANNED;
                }
                break;

                case ErrorIDs.INVALID_DISCONNECT_KEY:
                {
                    labels    = new[] { "{CLIENT_NAME}" };
                    arguments = new[] { acc.Name };
                    reason    = DisconnectReason.INVALID_DISCONNECT_KEY;
                }
                break;

                case ErrorIDs.LOST_CONNECTION:
                {
                    labels    = new[] { "{CLIENT_NAME}" };
                    arguments = new[] { acc.Name };
                    reason    = DisconnectReason.LOST_CONNECTION;
                }
                break;

                default:
                {
                    labels    = new[] { "{UNKNOW_ERROR_INSTANCE}" };
                    arguments = new[] { "connection aborted by unexpected protocol at line <b>340</b> or line <b>346</b> from 'TryConnect' function in RealmManager for security reasons" };
                    reason    = DisconnectReason.UNKNOW_ERROR_INSTANCE;
                }
                break;
                }

                client.SendMessage(new FAILURE
                {
                    ErrorId          = (int)FailureIDs.JSON_DIALOG,
                    ErrorDescription =
                        JSONErrorIDHandler.
                        FormatedJSONError(
                            errorID: errorID,
                            labels: labels,
                            arguments: arguments
                            )
                });

                Manager.TryDisconnect(client, reason);

                return;
            }
            else
            {
                World world = Manager.GetWorld(message.GameId);

                if (acc.AccountType == (int)AccountType.VIP_ACCOUNT)
                {
                    DateTime _currentTime     = DateTime.Now;
                    DateTime _vipRegistration = acc.AccountLifetime;

                    if (_vipRegistration <= _currentTime)
                    {
                        acc.AccountType = (int)AccountType.FREE_ACCOUNT;
                        acc.Flush();
                        acc.Reload();

                        FAILURE _failure = new FAILURE
                        {
                            ErrorId          = (int)FailureIDs.JSON_DIALOG,
                            ErrorDescription =
                                JSONErrorIDHandler
                                .FormatedJSONError(
                                    errorID: ErrorIDs.VIP_ACCOUNT_OVER,
                                    labels: new[] { "{CLIENT_NAME}", "{SERVER_TIME}", "{REGISTRATION_TIME}", "{CURRENT_TIME}" },
                                    arguments: new[] { acc.Name, string.Format(new DateProvider(), "{0}", DateTime.Now), string.Format(new DateProvider(), "{0}", acc.AccountLifetime.AddDays(-30)), string.Format(new DateProvider(), "{0}", acc.AccountLifetime) }
                                    )
                        };

                        client.SendMessage(_failure);

                        Manager.TryDisconnect(client, DisconnectReason.VIP_ACCOUNT_OVER);

                        return;
                    }
                }

                if (world == null)
                {
                    client.SendMessage(new FAILURE
                    {
                        ErrorId          = (int)FailureIDs.DEFAULT,
                        ErrorDescription = "Invalid world."
                    });

                    Manager.TryDisconnect(client, DisconnectReason.INVALID_WORLD);

                    return;
                }

                if (world.NeedsPortalKey)
                {
                    if (!world.PortalKey.SequenceEqual(message.Key))
                    {
                        client.SendMessage(new FAILURE
                        {
                            ErrorId          = (int)FailureIDs.DEFAULT,
                            ErrorDescription = "Invalid portal key."
                        });

                        Manager.TryDisconnect(client, DisconnectReason.INVALID_PORTAL_KEY);

                        return;
                    }

                    if (world.PortalKeyExpired)
                    {
                        client.SendMessage(new FAILURE
                        {
                            ErrorId          = (int)FailureIDs.DEFAULT,
                            ErrorDescription = "Portal key expired."
                        });

                        Manager.TryDisconnect(client, DisconnectReason.PORTAL_KEY_EXPIRED);

                        return;
                    }
                }

                if (message.MapInfo.Length > 0 || world.Id == -6)
                {
                    (world as Test).LoadJson(Encoding.Default.GetString(message.MapInfo));
                }

                if (world.IsLimbo)
                {
                    world = world.GetInstance(client);
                }

                client.Random      = new wRandom(world.Seed);
                client.TargetWorld = world.Id;

                client.SendMessage(new MAPINFO
                {
                    Width           = world.Map.Width,
                    Height          = world.Map.Height,
                    Name            = world.Name,
                    Seed            = world.Seed,
                    ClientWorldName = world.Name,
                    Difficulty      = world.Difficulty,
                    Background      = world.Background,
                    AllowTeleport   = world.AllowTeleport,
                    ShowDisplays    = world.ShowDisplays,
                    ClientXML       = world.ClientXml,
                    ExtraXML        = Manager.GameData.AdditionXml,
                    Music           = world.Name
                });

                client.State = ProtocolState.Handshaked;
            }
        }
Example #16
0
        public async Task RegisterAsync(params string[] Args)
        {
            EmbedBuilder Builder = new EmbedBuilder()
            {
                Title = GetEntry("TwitchTrack"),
                Color = Color.Red
            };

            if (Settings.TwitchTrack.ChannelId == 0)
            {
                await Context.Channel.SendMessageAsync(GetEntry("SetReport", "PREFIX", Settings.Prefix));

                return;
            }

            if (Args.Length == 0)
            {
                Builder.Description = GetEntry("HowToAdd", "PREFIX", Settings.Prefix);
            }
            else if (Args.Length > 1)
            {
                Builder.Description = GetEntry("NoSpace");
            }
            else
            {
                RegisterStatus Status = Global.TwitchTracker.Register(Args[0]);

                UserResponse?User = null;
                if (Status != RegisterStatus.UserNotFound)
                {
                    User = Global.TwitchTracker.GetUser(Args[0]);
                }

                switch (Status)
                {
                case RegisterStatus.UserNotFound:
                    Builder.Description = GetGlobalEntry("UserNotFound");
                    break;

                default:
                    Builder.ThumbnailUrl = User.Value.Avatar;

                    if (Settings.TwitchTrack.UserIds.Contains(User.Value.Id))
                    {
                        Builder.Description = GetEntry("AlreadyTracked", "USER", $"{ User.Value.DisplayName }({ User.Value.LoginUsername })");
                        break;
                    }

                    Builder.Color        = Global.Pink;
                    Builder.ThumbnailUrl = User.Value.Avatar;
                    Builder.Description  = GetEntry("StartedTracking", "USER", $"{ User.Value.DisplayName }({ User.Value.LoginUsername })");

                    Global.GuildSettings.Modify(Settings.GuildId, Settings =>
                    {
                        Settings.TwitchTrack.UserIds.Add(User.Value.Id);
                    });

                    break;
                }
            }

            await Context.Channel.SendMessageAsync("", embed : Builder.Build());
        }
Example #17
0
        public IActionResult Index([FromBody] RegisterDTO Register)
        {
            // RegisterStatus to return
            RegisterStatus objRegisterStatus = new RegisterStatus();

            objRegisterStatus.status       = "Registration Failure";
            objRegisterStatus.isSuccessful = false;

            // Get values passed
            var paramUserName  = Register.userName.Trim();
            var paramPassword  = Register.password.Trim();
            var paramFirstName = Register.firstName.Trim();
            var paramLastName  = Register.lastName.Trim();
            var paramEmail     = Register.email.Trim();

            // Validation ****************************

            EmailValidation objEmailValidation = new EmailValidation();

            if (!objEmailValidation.IsValidEmail(paramEmail))
            {
                objRegisterStatus.status       = "This Email is not valid.";
                objRegisterStatus.isSuccessful = false;
                return(Ok(objRegisterStatus));
            }

            if ((paramUserName == null) || (paramUserName.Length < 1))
            {
                objRegisterStatus.status       = "This Username is not long enough.";
                objRegisterStatus.isSuccessful = false;
                return(Ok(objRegisterStatus));
            }

            // Create Account ****************************

            try
            {
                var user = new ApplicationUser {
                    UserName = paramUserName, Email = paramEmail
                };
                var result = _userManager.CreateAsync(user, paramPassword).Result;

                if (result.Succeeded)
                {
                    // Sign the User in
                    var SignInResult = _signInManager.PasswordSignInAsync(
                        paramUserName, paramPassword, false, lockoutOnFailure: false).Result;

                    if (!SignInResult.Succeeded)
                    {
                        // Return the error
                        objRegisterStatus.status       = $"Could not sign user {paramUserName} in.";
                        objRegisterStatus.isSuccessful = false;
                        return(Ok(objRegisterStatus));
                    }
                }
                else
                {
                    // Create user failed
                    // Return the errors from the Memberhip API Creation
                    string strErrors = "";
                    foreach (var Error in result.Errors)
                    {
                        strErrors = strErrors + "\n" + Error.Description;
                    }

                    objRegisterStatus.status       = strErrors;
                    objRegisterStatus.isSuccessful = false;
                    return(Ok(objRegisterStatus));
                }

                objRegisterStatus.status       = "Success";
                objRegisterStatus.isSuccessful = true;

                return(Ok(objRegisterStatus));
            }
            catch (Exception ex)
            {
                objRegisterStatus.status       = ex.Message;
                objRegisterStatus.isSuccessful = false;

                return(Ok(objRegisterStatus));
            }
        }
Example #18
0
        private static string ErrorCodeToString(RegisterStatus createStatus)
        {
            switch (createStatus)
            {
                case RegisterStatus.DuplicateUserName:
                    return "User name already exists. Please enter a different user name.";

                case RegisterStatus.DuplicateEmail:
                    return "A user name for that e-mail address already exists. Please enter a different e-mail address.";

                case RegisterStatus.InvalidPassword:
                    return "The password provided is invalid. Please enter a valid password value.";

                case RegisterStatus.InvalidEmail:
                    return "The e-mail address provided is invalid. Please check the value and try again.";

                case RegisterStatus.InvalidUserName:
                    return "The user name provided is invalid. Please check the value and try again.";

                case RegisterStatus.ProviderError:
                    return "The authentication provider returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator.";

                case RegisterStatus.UserRejected:
                    return "The user creation request has been canceled. Please verify your entry and try again. If the problem persists, please contact your system administrator.";

                default:
                    return "An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
            }
        }
        public static RegisterStatus RegisterUser(RegisterDTO Register, string _DefaultConnection, IWebHostEnvironment _hostEnvironment, UserManager <ApplicationUser> _userManager, SignInManager <ApplicationUser> _signInManager, string CurrentHostLocation, bool BypassVerify, bool SignUserIn)
        {
            // RegisterStatus to return
            RegisterStatus objRegisterStatus = new RegisterStatus();

            objRegisterStatus.status               = "Registration Failure";
            objRegisterStatus.isSuccessful         = false;
            objRegisterStatus.requiresVerification = false;

            // Get values passed
            var paramUserName  = Register.userName.Trim();
            var paramPassword  = Register.password.Trim();
            var paramFirstName = Register.firstName.Trim();
            var paramLastName  = Register.lastName.Trim();
            var paramEmail     = Register.email.Trim();

            // Validation ****************************

            EmailValidation objEmailValidation = new EmailValidation();

            if (!objEmailValidation.IsValidEmail(paramEmail))
            {
                objRegisterStatus.status       = "This Email is not valid.";
                objRegisterStatus.isSuccessful = false;
                return(objRegisterStatus);
            }

            if ((paramUserName == null) || (paramUserName.Length < 1))
            {
                objRegisterStatus.status       = "This Username is not long enough.";
                objRegisterStatus.isSuccessful = false;
                return(objRegisterStatus);
            }

            var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>();

            optionsBuilder.UseSqlServer(_DefaultConnection);

            using (var context = new ADefHelpDeskContext(optionsBuilder.Options))
            {
                // Check the Username
                var objAdefHelpDeskUserName = (from AdefHelpDeskUsers in context.AdefHelpDeskUsers
                                               where AdefHelpDeskUsers.Username == paramUserName
                                               select AdefHelpDeskUsers).FirstOrDefault();

                if (objAdefHelpDeskUserName != null)
                {
                    // User is already taken
                    objRegisterStatus.status       = "This Username is already taken.";
                    objRegisterStatus.isSuccessful = false;
                    return(objRegisterStatus);
                }

                // Check the Email
                var objAdefHelpDeskEmail = (from AdefHelpDeskUsers in context.AdefHelpDeskUsers
                                            where AdefHelpDeskUsers.Email == paramEmail
                                            select AdefHelpDeskUsers).FirstOrDefault();

                if (objAdefHelpDeskEmail != null)
                {
                    // User is already taken
                    objRegisterStatus.status       = "This Email address is already taken.";
                    objRegisterStatus.isSuccessful = false;
                    return(objRegisterStatus);
                }
            }

            // Create Account ****************************

            // User Table
            try
            {
                using (var context = new ADefHelpDeskContext(optionsBuilder.Options))
                {
                    AdefHelpDeskUsers objAdefHelpDeskUsers = new AdefHelpDeskUsers();
                    objAdefHelpDeskUsers.Username  = paramUserName;
                    objAdefHelpDeskUsers.Email     = paramEmail;
                    objAdefHelpDeskUsers.FirstName = paramFirstName;
                    objAdefHelpDeskUsers.LastName  = paramLastName;
                    objAdefHelpDeskUsers.Password  = ""; // No longer store the password here

                    context.AdefHelpDeskUsers.Add(objAdefHelpDeskUsers);
                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                // Return the error
                objRegisterStatus.status       = ex.GetBaseException().Message;
                objRegisterStatus.isSuccessful = false;
                return(objRegisterStatus);
            }

            // Membership API

            var user = new ApplicationUser {
                UserName = paramUserName, Email = paramEmail
            };
            var result = _userManager.CreateAsync(user, paramPassword).Result;

            if (!result.Succeeded)
            {
                // Create user failed
                try
                {
                    // Delete user from the User table
                    using (var context = new ADefHelpDeskContext(optionsBuilder.Options))
                    {
                        var objAdefHelpDeskUser = (from AdefHelpDeskUsers in context.AdefHelpDeskUsers
                                                   where AdefHelpDeskUsers.Username == paramUserName
                                                   select AdefHelpDeskUsers).FirstOrDefault();

                        if (objAdefHelpDeskUser != null)
                        {
                            context.AdefHelpDeskUsers.Remove(objAdefHelpDeskUser);
                            context.SaveChanges();
                        }
                    }
                }
                catch
                {
                    // Do nothing if this fails
                }

                // Return the errors from the Memberhip API Creation
                string strErrors = "";
                foreach (var Error in result.Errors)
                {
                    strErrors = strErrors + "\n" + Error.Description;
                }

                objRegisterStatus.status       = strErrors;
                objRegisterStatus.isSuccessful = false;
                return(objRegisterStatus);
            }

            objRegisterStatus.status       = "Success";
            objRegisterStatus.isSuccessful = true;

            // *** Verified Accounts
            // Determine if verified registration is turned on
            // and BypassVerify is also on

            GeneralSettings objGeneralSettings = new GeneralSettings(_DefaultConnection);

            if ((!BypassVerify) && (objGeneralSettings.VerifiedRegistration))
            {
                // Get a random verify code
                string strVerifyCode = CreateVerificationKey(5);

                // Write it to the users record
                using (var context = new ADefHelpDeskContext(optionsBuilder.Options))
                {
                    var objAdefHelpDeskUser = (from AdefHelpDeskUsers in context.AdefHelpDeskUsers
                                               where AdefHelpDeskUsers.Username == paramUserName
                                               select AdefHelpDeskUsers).FirstOrDefault();

                    if (objAdefHelpDeskUser != null)
                    {
                        objAdefHelpDeskUser.VerificationCode = strVerifyCode;
                        context.AdefHelpDeskUsers.Update(objAdefHelpDeskUser);
                        context.SaveChanges();
                    }
                }

                // Send the user the verification email
                string strFullName = $"{paramFirstName} {paramLastName}";

                // Get file and make replacements
                string strEmailContents = System.IO.File.ReadAllText(System.IO.Path.Combine(_hostEnvironment.ContentRootPath, "SystemFiles", "Email-UserVerification.txt").Replace(@"\", @"/"));
                strEmailContents = strEmailContents.Replace("[strFullName]", strFullName);
                strEmailContents = strEmailContents.Replace("[CurrentHostLocation]", CurrentHostLocation);
                strEmailContents = strEmailContents.Replace("[paramUserName]", paramUserName);
                strEmailContents = strEmailContents.Replace("[strVerifyCode]", strVerifyCode);

                // Send Email
                // Async is turned off because we may have verified registration but the email server may not be working
                // The user needs to know this because their registration cannot proceed
                string smtpStatus = Email.SendMail(
                    false,
                    _DefaultConnection,
                    paramEmail,
                    strFullName,
                    "", "",
                    objGeneralSettings.SMTPFromEmail,
                    "Verification Email",
                    "ADefHelpDesk Registration Verification Email",
                    $"{strEmailContents} <br><br> This Email was sent from: {CurrentHostLocation}.");

                if (smtpStatus != "")
                {
                    // There was some sort of error - return it
                    objRegisterStatus.status               = smtpStatus;
                    objRegisterStatus.isSuccessful         = false;
                    objRegisterStatus.requiresVerification = true;
                    return(objRegisterStatus);
                }

                // Tell user they need to use the code that was just sent
                objRegisterStatus.requiresVerification = true;
                objRegisterStatus.status = $"Your registration was successful. ";
                objRegisterStatus.status = objRegisterStatus.status + $"However, registration is verified. ";
                objRegisterStatus.status = objRegisterStatus.status + $"You have been emailed a verification code that must be used to complete your registration.";
            }
            else
            {
                if (SignUserIn)
                {
                    // Sign the User in
                    var SignInResult = _signInManager.PasswordSignInAsync(
                        paramUserName, paramPassword, false, lockoutOnFailure: false).Result;

                    if (!SignInResult.Succeeded)
                    {
                        // Return the error
                        objRegisterStatus.status       = $"Could not sign user {paramUserName} in.";
                        objRegisterStatus.isSuccessful = false;
                        return(objRegisterStatus);
                    }
                }
            }

            return(objRegisterStatus);
        }
Example #20
0
 public void Register([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] User user, out RegisterStatus RegisterResult, [System.Xml.Serialization.XmlIgnoreAttribute()] out bool RegisterResultSpecified) {
     object[] results = this.Invoke("Register", new object[] {
                 user});
     RegisterResult = ((RegisterStatus)(results[0]));
     RegisterResultSpecified = ((bool)(results[1]));
 }
Example #21
0
        void TimerTick()
        {
            RegisterStatus s = RegisterStatus.Ok;

            Handler?.Invoke(this, s);
        }
Example #22
0
        protected override void HandlePacket(Client client, HELLO packet)
        {
            if (SERVER_VERSION != packet.BuildVersion)
            {
                client.SendMessage(new FAILURE
                {
                    ErrorId          = 8,
                    ErrorDescription =
                        JSONErrorIDHandler.
                        FormatedJSONError(
                            errorID: ErrorIDs.OUTDATED_CLIENT,
                            labels: new[] { "{CLIENT_BUILD_VERSION}", "{SERVER_BUILD_VERSION}" },
                            arguments: new[] { packet.BuildVersion, SERVER_VERSION }
                            )
                });
                client.Disconnect(DisconnectReason.OUTDATED_CLIENT);
                return;
            }
            if (!INTERNAL_SERVER_BUILD.Contains(packet.InternalBuildVersion)) //support for multi internal server build versions
            {
                client.SendMessage(new FAILURE
                {
                    ErrorId          = 8,
                    ErrorDescription =
                        JSONErrorIDHandler.
                        FormatedJSONError(
                            errorID: ErrorIDs.OUTDATED_INTERNAL_CLIENT,
                            labels: null,
                            arguments: null
                            )
                });
                client.Disconnect(DisconnectReason.OUTDATED_INTERNAL_CLIENT);
                return;
            }
            DbAccount   acc;
            LoginStatus s1 = client.Manager.Database.Verify(packet.GUID, packet.Password, out acc);

            if (s1 == LoginStatus.AccountNotExists)
            {
                RegisterStatus s2 = client.Manager.Database.Register(packet.GUID, packet.Password, true, out acc); //Register guest but do not allow join game.
                client.SendMessage(new FAILURE()
                {
                    ErrorId          = 8,
                    ErrorDescription =
                        JSONErrorIDHandler.
                        FormatedJSONError(
                            errorID: ErrorIDs.DISABLE_GUEST_ACCOUNT,
                            labels: null,
                            arguments: null
                            )
                });
                client.Disconnect(DisconnectReason.DISABLE_GUEST_ACCOUNT);
                return;
            }
            else if (s1 == LoginStatus.InvalidCredentials)
            {
                client.SendMessage(new FAILURE
                {
                    ErrorId          = 0,
                    ErrorDescription = "Bad login."
                });
                client.Disconnect(DisconnectReason.BAD_LOGIN);
            }
            client.ConnectedBuild = packet.BuildVersion;
            Tuple <bool, ErrorIDs> TryConnect = client.Manager.TryConnect(client);

            if (!TryConnect.Item1)
            {
                client.Account = null;
                ErrorIDs         errorID = TryConnect.Item2;
                string[]         labels;
                string[]         arguments;
                DisconnectReason type;
                switch (TryConnect.Item2)
                {
                case ErrorIDs.SERVER_FULL:
                {
                    labels    = new[] { "{MAX_USAGE}" };
                    arguments = new[] { $"{client.Manager.MaxClients}" };
                    type      = DisconnectReason.SERVER_FULL;
                }
                break;

                case ErrorIDs.ACCOUNT_BANNED:
                {
                    labels    = new[] { "{CLIENT_NAME}" };
                    arguments = new[] { client.Account.Name };
                    type      = DisconnectReason.ACCOUNT_BANNED;
                }
                break;

                case ErrorIDs.INVALID_DISCONNECT_KEY:
                {
                    labels    = new[] { "{CLIENT_NAME}" };
                    arguments = new[] { client.Account.Name };
                    type      = DisconnectReason.INVALID_DISCONNECT_KEY;
                }
                break;

                case ErrorIDs.LOST_CONNECTION:
                {
                    labels    = new[] { "{CLIENT_NAME}" };
                    arguments = new[] { client.Account.Name };
                    type      = DisconnectReason.LOST_CONNECTION;
                }
                break;

                default:
                {
                    labels    = new[] { "{UNKNOW_ERROR_INSTANCE}" };
                    arguments = new[] { "connection aborted by unexpected protocol at line <b>340</b> or line <b>346</b> from 'TryConnect' function in RealmManager for security reasons" };
                    type      = DisconnectReason.UNKNOW_ERROR_INSTANCE;
                }
                break;
                }
                client.SendMessage(new FAILURE
                {
                    ErrorId          = 8,
                    ErrorDescription =
                        JSONErrorIDHandler.
                        FormatedJSONError(
                            errorID: errorID,
                            labels: labels,
                            arguments: arguments
                            )
                });
                client.Disconnect(type);
                return;
            }
            else
            {
                if (packet.GameId == World.NEXUS_LIMBO)
                {
                    packet.GameId = World.NEXUS_ID;
                }
                World world = client.Manager.GetWorld(packet.GameId);
                if (world == null && packet.GameId == World.TUT_ID)
                {
                    world = client.Manager.AddWorld(new Tutorial(false));
                }
                if (!client.Manager.Database.AcquireLock(acc))
                {
                    //SendFailure(client, "Account in Use (" +
                    //    client.Manager.Database.GetLockTime(acc) + " seconds until timeout)");
                    client.Disconnect(DisconnectReason.ACCOUNT_IN_USE);
                    return;
                }
                if (world == null)
                {
                    client.SendMessage(new FAILURE
                    {
                        ErrorId          = 1,
                        ErrorDescription = "Invalid world."
                    });
                    client.Disconnect(DisconnectReason.INVALID_WORLD);
                    return;
                }
                if (world.NeedsPortalKey)
                {
                    if (!world.PortalKey.SequenceEqual(packet.Key))
                    {
                        client.SendMessage(new FAILURE
                        {
                            ErrorId          = 1,
                            ErrorDescription = "Invalid Portal Key"
                        });
                        client.Disconnect(DisconnectReason.INVALID_PORTAL_KEY);
                        return;
                    }
                    if (world.PortalKeyExpired)
                    {
                        client.SendMessage(new FAILURE
                        {
                            ErrorId          = 1,
                            ErrorDescription = "Portal key expired."
                        });
                        client.Disconnect(DisconnectReason.PORTAL_KEY_EXPIRED);
                        return;
                    }
                }
                if (packet.MapInfo.Length > 0 || world.Id == -6) //Test World
                {
                    (world as Test).LoadJson(Encoding.Default.GetString(packet.MapInfo));
                }
                if (world.IsLimbo)
                {
                    world = world.GetInstance(client);
                }
                client.Account     = acc;
                client.Random      = new wRandom(world.Seed);
                client.TargetWorld = world.Id;
                client.SendMessage(new MAPINFO
                {
                    Width           = world.Map.Width,
                    Height          = world.Map.Height,
                    Name            = world.Name,
                    Seed            = world.Seed,
                    ClientWorldName = world.ClientWorldName,
                    Difficulty      = world.Difficulty,
                    Background      = world.Background,
                    AllowTeleport   = world.AllowTeleport,
                    ShowDisplays    = world.ShowDisplays,
                    ClientXML       = world.ClientXml,
                    ExtraXML        = Manager.GameData.AdditionXml,
                    Music           = world.Name
                });
                client.State = ProtocolState.Handshaked;
            }
        }
Example #23
0
 public void ChangeRegisterStatus(RegisterStatus registerStatus)
 {
     RegisterStatus = registerStatus;
 }
Example #24
0
 public void Clear()
 {
     this.Value  = 0;
     this.Status = RegisterStatus.NotSet;
 }
Example #25
0
 /// <summary>
 /// Base constructor, which initializes BaseService(News)
 /// </summary>
 /// <param name="username"></param>
 /// <param name="email"></param>
 /// <param name="password"></param>
 /// <param name="status"></param>
 /// <returns></returns>
 public User RegisterUser(string username, string email, string password, out RegisterStatus status)
 {
     var passwordSalt = _passwordMethodsProvider.CreateSalt();
     var newUser = new User
     {
         Login = username,
         CreatedDate = DateTime.Now,
         PasswordSalt = passwordSalt,
         Password = _passwordMethodsProvider.CreatePasswordHash(password, passwordSalt),
         Email = email,
         IsActivated = true,
         IsLockedOut = false,
         LastLockedOutDate = null,
         LastLoginDate = null,
     };
     _context.Add(newUser);
     status = RegisterStatus.Success;
     return newUser;
 }
Example #26
0
 public void Deserialize(BinaryReader reader)
 {
     Status = (RegisterStatus)reader.ReadByte();
 }
        /// <summary>
        /// Adds user provided data to the database using the db context
        /// </summary>
        /// <param name="fullName"></param>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <param name="confirmPassword"></param>
        /// <returns></returns>
        private async Task <RegisterStatus> RegisterUser(String fullName, String username, String password, String confirmPassword)
        {
            RegisterStatus registerStatus;

            if (String.IsNullOrWhiteSpace(fullName) || String.IsNullOrWhiteSpace(username) || String.IsNullOrWhiteSpace(password) || String.IsNullOrWhiteSpace(confirmPassword))
            {
                registerStatus = new RegisterStatus()
                {
                    Message = "Required fields are empty!",
                    Error   = true
                };
                return(registerStatus);
            }

            using (var db = new EventContext())
            {
                if (!IsPasswordEqual(password, confirmPassword))
                {
                    registerStatus = new RegisterStatus()
                    {
                        Message = "Passwords doesn't match!",
                        Error   = true
                    };
                    return(registerStatus);
                }

                // Get all users in db and validate
                //var allUsersQuery = from users in db.Users select users;
                var allUsersQuery = await System.Threading.Tasks.Task.Run(() => from users in db.Users select users);


                foreach (var reguser in allUsersQuery)
                {
                    if (reguser.Username.Equals(username))
                    {
                        registerStatus = new RegisterStatus()
                        {
                            Message = "Username already exists!",
                            Error   = true
                        };
                        return(registerStatus);
                    }
                    else if (!(fullName.Length >= 3 && password.Length >= 3))
                    {
                        registerStatus = new RegisterStatus()
                        {
                            Message = "Username and Password size must be more than 2 characters",
                            Error   = true
                        };
                        return(registerStatus);
                    }
                }

                // Add new user to db
                var newUser = new User {
                    Name = fullName, Username = username, Password = password
                };
                db.Users.Add(newUser);

                try
                {
                    db.SaveChanges();
                }
                catch (Exception ex)
                {
                    Utilites.Helper.SaveLog(ex);

                    registerStatus = new RegisterStatus()
                    {
                        Message = "Internal Database Error!",
                        Error   = true
                    };
                    return(registerStatus);
                }

                registerStatus = new RegisterStatus()
                {
                    Message = "User registration successful!",
                    Error   = false
                };
                return(registerStatus);
            }
        }
        public RegisterStatus CreateAdminLogin([FromBody] RegisterDTO objRegister)
        {
            // RegisterStatus to return
            RegisterStatus objRegisterStatus = new RegisterStatus();

            objRegisterStatus.status       = "Registration Failure";
            objRegisterStatus.isSuccessful = false;

            // Test for a strong password
            if (!UtilitySecurity.IsPasswordStrong(objRegister.password))
            {
                objRegisterStatus.status       = "The password is not strong enough.";
                objRegisterStatus.isSuccessful = false;
                return(objRegisterStatus);
            }

            // Do not run if we can connect to the current database
            if (CurrentVersion().isNewDatabase == false)
            {
                objRegisterStatus.isSuccessful = false;
                objRegisterStatus.status       = "Cannot create the Admin account because the database is already set-up. Reload your web browser to upgrade using the updated database connection.";
            }
            else
            {
                // Run the scripts to set-up the database
                DTOStatus objDTOStatus = RunUpdateScripts(NewDatabaseVersion, _hostEnvironment, GetConnectionString());

                if (!objDTOStatus.Success)
                {
                    // If scripts have an error return it
                    objRegisterStatus.isSuccessful = false;
                    objRegisterStatus.status       = objDTOStatus.StatusMessage;
                }
                else
                {
                    // Create the Administrator
                    string strCurrentHostLocation = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}";
                    objRegisterStatus = RegisterController.RegisterUser(
                        objRegister, GetConnectionString(), _hostEnvironment, _userManager, _signInManager, strCurrentHostLocation, true, true);

                    // There was an error creating the Administrator
                    if (!objRegisterStatus.isSuccessful)
                    {
                        // Delete the record in the version table
                        // So the install can be run again
                        objDTOStatus = ResetVersionTable();

                        if (!objDTOStatus.Success)
                        {
                            // If there is an error return it
                            objRegisterStatus.isSuccessful = false;
                            objRegisterStatus.status       = objDTOStatus.StatusMessage;
                        }
                        else
                        {
                            //  Delete the user in case they were partially created
                            objDTOStatus = DeleteAllUsers();

                            if (!objDTOStatus.Success)
                            {
                                // If there is an error return it
                                objRegisterStatus.isSuccessful = false;
                                objRegisterStatus.status       = objDTOStatus.StatusMessage;
                            }
                        }
                    }
                    else
                    {
                        // Update the created user to be a SuperUser
                        objDTOStatus = MakeUserASuperUser(objRegister.userName);

                        #region Set the upload file path
                        try
                        {
                            string strDefaultFilesPath = ADefHelpDeskApp.Controllers.ApplicationSettingsController.GetFilesPath(_DefaultFilesPath, GetConnectionString());

                            // Get GeneralSettings
                            GeneralSettings objGeneralSettings = new GeneralSettings(GetConnectionString());
                            objGeneralSettings.UpdateFileUploadPath(GetConnectionString(), strDefaultFilesPath);
                        }
                        catch
                        {
                            // Do nothing if this fails
                            // Admin can set the file path manually
                        }
                        #endregion

                        if (!objDTOStatus.Success)
                        {
                            // If there is an error return it
                            objRegisterStatus.isSuccessful = false;
                            objRegisterStatus.status       = objDTOStatus.StatusMessage;
                        }
                    }
                }
            }

            return(objRegisterStatus);
        }
Example #29
0
        public byte[] Export(Core.Reports.Enums.ExportType exportType, string[] parameters)
        {
            var filterCriteria    = string.Empty;
            var startDate         = default(DateTime);
            var endDate           = default(DateTime);
            var districtList      = new List <long>();
            var infringementType  = default(InfringementType?);
            var infringementValue = default(decimal?);
            var registerStatus    = default(RegisterStatus?);
            var periodType        = string.Empty;

            foreach (var parameter in parameters)
            {
                var parts = parameter.Split(new[] { '=' }, StringSplitOptions.RemoveEmptyEntries);
                if (parts.Length != 2)
                {
                    continue;
                }

                if (parts[0].Equals("districtID", StringComparison.InvariantCultureIgnoreCase))
                {
                    long districtID = 0;
                    if (long.TryParse(parts[1], out districtID))
                    {
                        districtList.Add(districtID);
                    }
                }
                else if (parts[0].Equals("startDate", StringComparison.InvariantCultureIgnoreCase))
                {
                    DateTime.TryParseExact(parts[1], "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out startDate);
                }
                else if (parts[0].Equals("endDate", StringComparison.InvariantCultureIgnoreCase))
                {
                    DateTime.TryParseExact(parts[1], "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out endDate);
                }
                else if (parts[0].Equals("infringementType", StringComparison.InvariantCultureIgnoreCase))
                {
                    InfringementType infringementType_ = 0;
                    if (Enum.TryParse(parts[1], out infringementType_))
                    {
                        infringementType = infringementType_;
                    }
                }
                else if (parts[0].Equals("registerStatus", StringComparison.InvariantCultureIgnoreCase))
                {
                    RegisterStatus registerStatus_ = 0;
                    if (Enum.TryParse(parts[1], out registerStatus_))
                    {
                        registerStatus = registerStatus_;
                    }
                }
                else if (parts[0].Equals("infringementValue", StringComparison.InvariantCultureIgnoreCase))
                {
                    decimal infringementValue_ = 0;
                    if (decimal.TryParse(parts[1], out infringementValue_))
                    {
                        infringementValue = infringementValue_;
                    }
                }
                else if (parts[0].Equals("periodType", StringComparison.InvariantCultureIgnoreCase))
                {
                    periodType = parts[1];
                }
            }

            if (periodType.Equals("thisMonth", StringComparison.InvariantCultureIgnoreCase))
            {
                var now = DateTime.Now;

                startDate = new DateTime(now.Year, now.Month, 1);
                endDate   = now.Date.AddDays(1);
            }
            else if (periodType.Equals("lastMonth", StringComparison.InvariantCultureIgnoreCase))
            {
                var now = DateTime.Now;

                startDate = new DateTime(now.Year, now.Month, 1).AddMonths(-1);
                endDate   = startDate.AddMonths(1).AddMilliseconds(-1);
            }
            else if (periodType.Equals("thisYear", StringComparison.InvariantCultureIgnoreCase))
            {
                var now = DateTime.Now;

                startDate = new DateTime(now.Year, 1, 1);
                endDate   = now.Date.AddDays(1);
            }
            else if (periodType.Equals("lastYear", StringComparison.InvariantCultureIgnoreCase))
            {
                var now = DateTime.Now;

                startDate = new DateTime(now.Year, 1, 1).AddYears(-1);
                endDate   = startDate.AddYears(1).AddMilliseconds(-1);
            }

            using (var dbContext = new DataContext())
            {
                //dbContext.Database.Log = f => Debug.WriteLine(f);
                endDate = endDate.AddDays(1).AddMilliseconds(-1);

                var query = dbContext.OffenceRegister
                            .AsNoTracking()
                            .Include(f => f.Register)
                            .Include(f => f.Register.District)
                            .Include(f => f.Court)
                            .Include(f => f.Register.Person)
                            .Include(f => f.InfringementLocation)
                            .Include(f => f.EvidenceLog)
                            .Include(f => f.EvidenceLog.SpeedLog)
                            .Include(f => f.EvidenceLog.ChargeInfos)
                            .Include(f => f.EvidenceLog.InfringementEvidences)
                            .Include(f => f.EvidenceLog.HandWrittenCaptureLog)
                            .Where(f => (f.Register.DistrictID.HasValue && districtList.Contains(f.Register.DistrictID.Value)) &&
                                   (f.InfringementDate >= startDate && f.InfringementDate <= endDate));

                if (infringementType.HasValue)
                {
                    query = query.Where(f => f.InfringementType == infringementType.Value);
                }

                if (registerStatus.HasValue)
                {
                    query = query.Where(f => f.Register.RegisterStatus == (int)registerStatus.Value);
                }

                if (infringementValue.HasValue)
                {
                    query = query.Where(f => f.CapturedAmount.HasValue && f.CapturedAmount.Value >= infringementValue.Value);
                }

                var offences = query.OrderByDescending(f => f.InfringementDate).ToList();
                var models   = new List <OutstandingInfringerModel>();

                foreach (var offence in offences)
                {
                    var model = new OutstandingInfringerModel();

                    model.ReferenceNumber         = offence.ReferenceNumber;
                    model.DistrictName            = offence.Register.District == null ? string.Empty : offence.Register.District.BranchName;
                    model.OffenceLocation         = offence.InfringementLocation == null ? string.Empty : offence.InfringementLocation.Description;
                    model.OutstandingAmount       = offence.Register.OutstandingAmount.Value;
                    model.OffenceDate             = offence.InfringementDate;
                    model.OffenderName            = offence.Register.Person == null ? string.Empty : string.Format("{0} {1}", offence.Register.Person.FirstNames, offence.Register.Person.LastName);
                    model.OffenderEmail           = offence.Register.Person == null ? string.Empty : offence.Register.Person.Email;
                    model.OffenderMobile          = offence.Register.Person == null ? string.Empty : offence.Register.Person.MobileNumber;
                    model.FormattedRegisterStatus = offence.Register.RegisterStatus.ToString();

                    if (offence.EvidenceLog != null)
                    {
                        if (offence.EvidenceLog.ChargeInfos != null && offence.EvidenceLog.ChargeInfos.Count > 0)
                        {
                            var firstChargeInfo = offence.EvidenceLog.ChargeInfos.First();
                            model.OffenceCode        = firstChargeInfo.OffenceCode.Code;
                            model.OffenceDescription = firstChargeInfo.PrimaryDescription;
                        }

                        if (offence.EvidenceLog.HandWrittenCaptureLog != null)
                        {
                            model.OffenceLocation = offence.EvidenceLog.HandWrittenCaptureLog.OffenceLocationStreet;
                            if (!string.IsNullOrWhiteSpace(offence.EvidenceLog.HandWrittenCaptureLog.OffenceLocationSuburb))
                            {
                                model.OffenceLocation += string.Format("\n{0}", offence.EvidenceLog.HandWrittenCaptureLog.OffenceLocationSuburb);
                            }
                            if (!string.IsNullOrWhiteSpace(offence.EvidenceLog.HandWrittenCaptureLog.OffenceLocationTown))
                            {
                                model.OffenceLocation += string.Format("\n{0}", offence.EvidenceLog.HandWrittenCaptureLog.OffenceLocationTown);
                            }
                        }
                    }

                    models.Add(model);
                }

                filterCriteria += string.Format("District: {0} ", districtList.Count == 1 ? dbContext.Districts.Find(districtList[0]).BranchName : "ALL");
                filterCriteria += string.Format("Period: {0:yyyy/MM/dd} - {1:yyyy/MM/dd} ", startDate, endDate);
                filterCriteria += string.Format("Infringement Type: {0} ", infringementType.HasValue ? infringementType.ToString() : "ALL");
                if (infringementValue.HasValue && infringementValue.Value > 0)
                {
                    filterCriteria += string.Format("Values >: {0:0.00} ", infringementValue.Value);
                }
                filterCriteria += string.Format("Register Status: {0} ", registerStatus.HasValue ? registerStatus.ToString() : "ALL");

                if (exportType == ExportType.PDF)
                {
                    return(StreamPdfReport(BuildReport(models, filterCriteria)));
                }
                else if (exportType == ExportType.Excel)
                {
                    return(StreamExcelReport(BuildReport(models, filterCriteria)));
                }
                else
                {
                    throw new NotSupportedException();
                }
            }
        }
Example #30
0
 public CriminalInfo(RegisterStatus registerStatus, CriminalStatus criminalStatus)
 {
     RegisterStatus = registerStatus;
     CriminalStatus = criminalStatus;
 }
Example #31
0
 public RegisterResponseParameters(RegisterStatus status)
 {
     Status = status;
 }
Example #32
0
 public override int GetHashCode()
 {
     return(RegisterStatus.GetHashCode() ^ CriminalStatus.GetHashCode());
 }