예제 #1
0
        public async Task <IActionResult> CreateList(
            [FromBody, Bind("Listidentifier", "Keyword")] AuthorizationModel listAuth)
        {
            if (!listAuth.Validate())
            {
                return(BadRequest(ErrorModel.BadRequest()));
            }

            listAuth.LowerIdentifier();

            if (db.Lists.FirstOrDefault(l => l.Identifier == listAuth.ListIdentifier) != null)
            {
                return(BadRequest(ErrorModel.AlreadyExists()));
            }

            var list = new List(listAuth.ListIdentifier, listAuth.Keyword);

            var masterKey = SecureRandom.GenerateMasterKey(32);

            list.MasterKeyHash = Hashing.CreatePasswordHash(masterKey);

            await db.Lists.AddAsync(list);

            await db.SaveChangesAsync();

            var outList = new ListCreated(list, masterKey);

            return(Created("list", outList));
        }