Example #1
0
        public async Task <IActionResult> Register([FromBody] UserCredentials credentials)
        {
            if (!ModelState.IsValid)
            {
                return(ErrorHelper.Error(ModelState));
            }

            var user = new UserContractModel {
                UserName = credentials.Email, Email = credentials.Email
            };
            var result = await _userManager.CreateAsync(user, credentials.Password);

            if (!result.Succeeded)
            {
                return(ErrorHelper.Error(result));
            }

            var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

            var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme);

            _emailSender.SendEmailConfirmationAsync(credentials.Email, callbackUrl);
            result = await _userManager.AddToRoleAsync(user, _defaultRole.Role);

            if (!result.Succeeded)
            {
                return(ErrorHelper.Error(result));
            }

            return(Ok("Account confirmation is required."));
        }
        public HttpResponseMessage UploadDocument(DocumentContractModel document)
        {
            UserContractModel user = GetUser();

            if (!string.IsNullOrEmpty(user.Username) && user.Admin)
            {
                try
                {
                    if (!ModelState.IsValid)
                    {
                        return(Request.CreateResponse(HttpStatusCode.BadRequest));
                    }
                    document.Username = user.Username;
                    business.UploadDocument(document);

                    return(Request.CreateResponse(HttpStatusCode.OK));
                }
                catch (BusinessException ex)
                {
                    logger.Error(ex.Message);
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, ex));
                }
                catch (Exception ex)
                {
                    logger.Error(ex.Message);
                    return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex));
                }
            }
            return(Request.CreateResponse(HttpStatusCode.Unauthorized));
        }
Example #3
0
        public HttpResponseMessage Post(UserContractModel userContractModel)
        {
            try
            {
                var re     = Request;
                var header = re.Headers;

                if (header.Contains("Username"))
                {
                    if (header.Contains("Admin"))
                    {
                        string value = header.GetValues("Admin").First();
                        userContractModel.Admin = value == "1";
                    }

                    if (string.IsNullOrEmpty(header.GetValues("Username").First()))
                    {
                        return(Request.CreateResponse(HttpStatusCode.Unauthorized));
                    }
                    return(Request.CreateResponse(HttpStatusCode.OK, userContractModel));
                }

                return(Request.CreateResponse(HttpStatusCode.Unauthorized));
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex));
            }
        }
        private UserContractModel GetUser()
        {
            UserContractModel user = new UserContractModel();
            var re     = Request;
            var header = re.Headers;

            if (header.Contains("Username"))
            {
                if (header.Contains("Admin"))
                {
                    string value = header.GetValues("Admin").First();
                    user.Admin = value == "1";
                }
                user.Username = header.GetValues("Username").First();
                return(user);
            }
            return(user);
        }
        public HttpResponseMessage GetDocuments()
        {
            UserContractModel user = GetUser();

            if (!string.IsNullOrEmpty(user.Username))
            {
                try
                {
                    IQueryable <DocumentContractModel> documents = business.GetDocuments();
                    return(Request.CreateResponse(HttpStatusCode.OK, documents));
                }
                catch (Exception ex)
                {
                    logger.Error(ex.Message);
                    return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex));
                }
            }
            return(Request.CreateResponse(HttpStatusCode.Unauthorized));
        }
Example #6
0
 public bool CheckConfirmation(UserContractModel user)
 {
     return(false);
 }
Example #7
0
 public void Login(UserContractModel contractModel)
 {
     throw new NotImplementedException();
 }
Example #8
0
 public UserContractModel RegisterUser(UserContractModel contractModel)
 {
     throw new NotImplementedException();
 }
        public void Initialize(OnlineMarketContext context, RoleManager <IdentityRole> roleManager, UserManager <UserContractModel> userManager, IOptions <UserSettingsOptions> userSettings, IOptions <DefaultUserRolesOptions> roles)
        {
            context.Database.EnsureCreated();

            if (context.ItemTypes.Any())
            {
                return;
            }

            //Trying staff until it works
            foreach (var x in roles.Value.Roles)
            {
                var roleExist = roleManager.RoleExistsAsync(x).Result;
                if (roleExist)
                {
                    continue;
                }


                var unused = roleManager.CreateAsync(new IdentityRole(x)).Result;
            }

            var user = new UserContractModel
            {
                UserName       = userSettings.Value.UserName,
                Email          = userSettings.Value.UserEmail,
                EmailConfirmed = true
            };

            var createAdminUser = userManager.CreateAsync(user, userSettings.Value.UserPassword).Result;

            if (createAdminUser.Succeeded)
            {
                var unused = userManager.AddToRoleAsync(user, userSettings.Value.UserRole).Result;
            }

            var store = new StoreDataModel {
                Name = "testStore"
            };

            context.Store.Add(store);

            context.SaveChanges();

            var accounts = new List <AccountDataModel>()
            {
                new AccountDataModel {
                    AccountOwnerId = user.Id, AvailableBalance = 10000
                },
                new AccountDataModel {
                    AccountOwnerId = store.Id, AvailableBalance = 1000000
                }
            };

            context.Accounts.AddRange(accounts);
            context.SaveChanges();

            var itemTypes = new List <ItemTypeDataModel>
            {
                new ItemTypeDataModel {
                    Name = "Oil"
                },
                new ItemTypeDataModel {
                    Name = "Iron"
                },
                new ItemTypeDataModel {
                    Name = "Wood"
                }
            };

            context.ItemTypes.AddRange(itemTypes);
            context.SaveChanges();

            var storage       = new List <StorageDataModel>();
            var exchangeRates = new List <ExchangeRatesDataModel>();

            itemTypes.ForEach(x =>
            {
                exchangeRates.Add(new ExchangeRatesDataModel {
                    Rate = 15, ItemType = x, ItemTypeId = x.Id
                });
                storage.Add(new StorageDataModel {
                    ItemTypeId = x.Id, ItemType = x, Account = accounts.First(), AccountId = accounts.First().Id, Quantity = 0, StorageAmount = 0
                });
                storage.Add(new StorageDataModel {
                    ItemTypeId = x.Id, ItemType = x, Account = accounts.Last(), AccountId = accounts.Last().Id, Quantity = 1000, StorageAmount = 15 * 1000
                });
            });

            context.Storages.AddRange(storage);
            context.CurrentRates.AddRange(exchangeRates.Select(x => new CurrentRateDataModel
            {
                ItemType   = x.ItemType,
                Rate       = x.Rate,
                ItemTypeId = x.ItemTypeId
            }));

            context.ExchangeRates.AddRange(exchangeRates);

            context.SaveChanges();
        }