示例#1
0
        public User Create(User user, string password)
        {
            // validation
            if (string.IsNullOrWhiteSpace(password))
            {
                throw new AppException("Password is required");
            }

            if (_context.Users.Any(x => x.UserName == user.UserName))
            {
                throw new AppException("Username \"" + user.UserName + "\" is already taken");
            }

            byte[] passwordHash, passwordSalt;
            CreatePasswordHash(password, out passwordHash, out passwordSalt);

            user.PasswordHash = passwordHash;
            user.PasswordSalt = passwordSalt;

            //by default, new user is ReadOnly user. System Admin can change permissions later.
            user.IsReadOnly    = true;
            user.CanComment    = false;
            user.IsContributer = false;
            user.IsAdmin       = false;

            _context.Users.Add(user);
            _context.SaveChanges();

            return(user);
        }
示例#2
0
        public IActionResult EvaluateHeritage(long id)
        {
            //filter contact records by contact id
            var heritage = _context.Heritages
                           .Where(item => item.Id == id)
                           .Include(item => item.HeritageEvaluations)
                           .Include(item => item.HeritageActivationModes)
                           .FirstOrDefault();

            if (heritage == null)
            {
                return(NotFound());
            }

            var    evaluations = heritage.HeritageEvaluations;
            double factor1     = _context.EvaluationParameters.FirstOrDefault(param => param.Id == 1).ParameterValue;
            double factor2     = _context.EvaluationParameters.FirstOrDefault(param => param.Id == 1).ParameterValue;
            double factor3     = _context.EvaluationParameters.FirstOrDefault(param => param.Id == 1).ParameterValue;
            double factor4     = _context.EvaluationParameters.FirstOrDefault(param => param.Id == 1).ParameterValue;
            double factor5     = _context.EvaluationParameters.FirstOrDefault(param => param.Id == 1).ParameterValue;

            heritage.EvaluationValue = evaluations.Where(evaluation => evaluation.EvaluatorTypeId == 5).Select(evaluation => evaluation.EvaluationValue).DefaultIfEmpty(0).Average() * factor1 +
                                       evaluations.Where(evaluation => evaluation.EvaluatorTypeId == 4).Select(evaluation => evaluation.EvaluationValue).DefaultIfEmpty(0).Average() * factor2 +
                                       evaluations.Where(evaluation => evaluation.EvaluatorTypeId == 3).Select(evaluation => evaluation.EvaluationValue).DefaultIfEmpty(0).Average() * factor3 +
                                       evaluations.Where(evaluation => evaluation.EvaluatorTypeId == 2).Select(evaluation => evaluation.EvaluationValue).DefaultIfEmpty(0).Average() * factor4 +
                                       evaluations.Where(evaluation => evaluation.EvaluatorTypeId == 1).Select(evaluation => evaluation.EvaluationValue).DefaultIfEmpty(0).Average() * factor5;

            var activationModes = _context.ActivationModes
                                  .Where(actMode => actMode.UpperBound > heritage.EvaluationValue && actMode.LowerBound < heritage.EvaluationValue)
                                  .ToList();

            if (heritage.HeritageActivationModes == null)
            {
                heritage.HeritageActivationModes = new List <HeritageActivationMode> ();
            }

            if (heritage.HeritageActivationModes.Count > 0)
            {
                heritage.HeritageActivationModes.Clear();
            }

            foreach (ActivationMode actMode in activationModes)
            {
                var heritageActMode = new HeritageActivationMode();
                heritageActMode.HeritageId       = heritage.Id;
                heritageActMode.ActivationModeId = actMode.Id;
                heritage.HeritageActivationModes.Add(heritageActMode);
            }

            _context.SaveChanges();

            var itemDto = _mapper.Map <HeritageDto> (heritage);

            return(new ObjectResult(itemDto));
        }
        public IActionResult Add([FromBody] HeritageCommentDto item)
        {
            //set bad reqeust if contact data is not provided in body
            if (item == null)
            {
                return(BadRequest());
            }

            var comment = _mapper.Map <HeritageComment>(item);

            comment.CommentDate = DateTime.Now;
            _context.HeritageComments.Add(comment);
            _context.SaveChanges();
            item = _mapper.Map <HeritageCommentDto>(comment);
            return(Ok(item));
        }
示例#4
0
        public IActionResult UploadFile(ICollection <IFormFile> files, int heritageId, int uploadUserId)
        {
            if (!Request.HasFormContentType)
            {
                return(BadRequest());
            }
            // Create wwwroot\Files directory if needed
            if (!Directory.Exists(_hostEnvironment.WebRootPath))
            {
                DirectoryInfo di =
                    Directory.CreateDirectory(_hostEnvironment.WebRootPath);
            }
            var form          = Request.Form;
            var fileNameShort = "";
            var fileNameLong  = "";

            // Process all Files
            foreach (var file in form.Files)
            {
                // Process file
                using (var readStream = file.OpenReadStream())
                {
                    var filename = ContentDispositionHeaderValue
                                   .Parse(file.ContentDisposition)
                                   .FileName
                                   .Trim();
                    fileNameShort = filename.ToString();
                    filename      = _hostEnvironment.WebRootPath + $@"\{filename}";
                    fileNameLong  = filename.ToString();
                    //Save file to harddrive
                    using (FileStream fs = System.IO.File.Create(filename.ToString()))
                    {
                        file.CopyTo(fs);
                        fs.Flush();
                        _context.FileUploads.Add(new FileUpload {
                            HeritageId   = heritageId,
                            FileName     = fileNameShort,
                            FilePath     = fileNameLong,
                            UploadUserId = uploadUserId
                        });
                    }

                    _context.SaveChanges();
                }
            }
            return(Ok());
        }
        public IActionResult Add([FromBody] ActivationModeDto item)
        {
            //set bad reqeust if contact data is not provided in body
            if (item == null)
            {
                return(BadRequest());
            }

            var actMode = _mapper.Map <ActivationMode> (item);

            actMode.CreatedOn  = DateTime.Now;
            actMode.ModifiedOn = DateTime.Now;
            _context.ActivationModes.Add(actMode);
            _context.SaveChanges();
            item = _mapper.Map <ActivationModeDto> (actMode);
            return(Ok(item));
        }
示例#6
0
        public IActionResult Create([FromBody] HeritageDto item)
        {
            //set bad reqeust if contact data is not provided in body
            if (item == null)
            {
                return(BadRequest());
            }

            var heritage = _mapper.Map <Heritage> (item);

            heritage.CreatedOn  = DateTime.Now;
            heritage.ModifiedOn = DateTime.Now;

            _context.Heritages.Add(heritage);
            _context.SaveChanges();
            item = _mapper.Map <HeritageDto> (heritage);
            return(Ok(item));
        }
        public IActionResult Update(long id, [FromBody] EvaluationParameterDto item)
        {
            //set bad reqeust if  contact data is not provided in body
            if (item == null || id == 0)
            {
                return(BadRequest());
            }

            var evaluationParameter = _mapper.Map <EvaluationParameter> (item);

            var evalParameter = _context.EvaluationParameters.FirstOrDefault(t => t.Id == id);

            if (evalParameter == null)
            {
                return(NotFound());
            }

            evalParameter.ParameterValue = evaluationParameter.ParameterValue;

            _context.SaveChanges();
            item = _mapper.Map <EvaluationParameterDto> (evalParameter);
            return(Ok(item));
        }