コード例 #1
0
        public async Task <UserDescription> AddUserDescriptionAsync(AddUserDescriptionViewModel model,
                                                                    CancellationToken cancellationToken = default(CancellationToken))
        {
            // Get user profile.
            var profile = _dbContext.Users.FindAsync(model.Id, cancellationToken);

            if (profile == null)
            {
                throw new Exception();
            }

            // Add user description into database.
            var userDescription = new UserDescription();

            userDescription.UserId      = profile.Id;
            userDescription.Description = model.Description;

            // Add the description into database.
            userDescription = _dbContext.UserDescriptions.Add(userDescription);

            // Save changes into database.
            await _dbContext.SaveChangesAsync(cancellationToken);

            return(userDescription);
        }
コード例 #2
0
        public async Task <Responsibility> AddResponsibilityAsync(AddResponsibilityViewModel model,
                                                                  CancellationToken cancellationToken = default(CancellationToken))
        {
            //Check exists responsibility
            var isExists = await _dbContext.Responsibilities.AnyAsync(c => c.Name == model.Name, cancellationToken);

            if (isExists)
            {
                throw new Exception();
            }

            //Inital responsibility object
            var responsibility = new Responsibility();

            responsibility.Name        = model.Name;
            responsibility.CreatedTime = DateTime.Now.ToOADate();

            //Add responsibility to database
            responsibility = _dbContext.Responsibilities.Add(responsibility);

            //Save changes to database
            await _dbContext.SaveChangesAsync(cancellationToken);

            return(responsibility);
        }
コード例 #3
0
        /// <summary>
        ///     <inheritdoc />
        /// </summary>
        /// <param name="model"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task <SkillCategory> AddSkillCategoryAsync(AddSkillCategoryViewModel model,
                                                                CancellationToken cancellationToken = default(CancellationToken))
        {
            var skillCategory = new SkillCategory();

            skillCategory.Name   = model.Name;
            skillCategory.UserId = model.UserId;
            if (model.Photo != null)
            {
                skillCategory.Photo = Convert.ToBase64String(model.Photo.Buffer);
            }
            skillCategory.CreatedTime = DateTime.Now.ToOADate();

            skillCategory = _dbContext.SkillCategories.Add(skillCategory);

            await _dbContext.SaveChangesAsync(cancellationToken);

            return(skillCategory);
        }
コード例 #4
0
ファイル: SkillDomain.cs プロジェクト: maint16/Cv_Management
        public async Task <Skill> AddSkillAsync(AddSkillViewModel model, CancellationToken cancellationToken = default(CancellationToken))
        {
            //Check exists skill in database
            var isExists = await _dbContext.Skills.AnyAsync(c => c.Name.Equals(model.Name), cancellationToken);

            if (isExists)
            {
                throw new Exception();
            }

            //Inital skill object
            var skill = new Skill();

            skill.Name        = model.Name;
            skill.CreatedTime = DateTime.Now.ToOADate();

            //add skill to database
            skill = _dbContext.Skills.Add(skill);

            //save changes to database
            await _dbContext.SaveChangesAsync(cancellationToken);

            return(skill);
        }
コード例 #5
0
        public async Task <Project> AddProjectAsync(AddProjectViewModel model,
                                                    CancellationToken cancellationToken = default(CancellationToken))
        {
            //Check exists project in database
            var isExists = await _dbContext.Projects.AnyAsync(c => c.Name == model.Name, cancellationToken);

            if (isExists)
            {
                throw new Exception();
            }

            var transaction = _dbContext.Database.BeginTransaction();

            try
            {
                //Inial Project object
                var project = new Project();

                project.UserId       = model.UserId;
                project.Name         = model.Name;
                project.Description  = model.Description;
                project.FinishedTime = model.FinishedTime;
                project.StartedTime  = model.StatedTime;

                //Add project to database
                project = _dbContext.Projects.Add(project);
                if (model.SkillIds != null)
                {
                    #region add project skill

                    //check exists skill
                    var countSkills = await _dbContext.Skills.Where(c => model.SkillIds.Contains(c.Id)).CountAsync();

                    var isExistSkills = countSkills == model.SkillIds.Count;

                    if (!isExistSkills)
                    {
                        throw new Exception();
                    }

                    //Insert to projectSkill table
                    foreach (var skillId in model.SkillIds)
                    {
                        var projectSkill = new ProjectSkill();

                        projectSkill.ProjectId = project.Id;
                        projectSkill.SkillId   = skillId;

                        //Add to db context
                        _dbContext.ProjectSkills.Add(projectSkill);
                    }

                    #endregion
                }

                if (model.ResponsibilityIds != null)
                {
                    #region Project responsibilitis

                    // check exists responsibilities
                    var countRespon = await _dbContext.Responsibilities
                                      .Where(c => model.ResponsibilityIds.Contains(c.Id)).CountAsync();

                    var isExistsRespon = countRespon == model.ResponsibilityIds.Count;

                    if (!isExistsRespon)
                    {
                        throw new Exception();
                    }

                    //Insert project responsibility to db context
                    foreach (var responsibilityId in model.ResponsibilityIds)
                    {
                        var projectResponsibility = new ProjectResponsibility();

                        projectResponsibility.ProjectId        = project.Id;
                        projectResponsibility.ResponsibilityId = responsibilityId;
                        projectResponsibility.CreatedTime      = DateTime.UtcNow.ToOADate();

                        //Add to db context
                        _dbContext.ProjectResponsibilities.Add(projectResponsibility);
                    }

                    #endregion
                }


                //Save changes to database
                await _dbContext.SaveChangesAsync(cancellationToken);

                //Commit transaction
                transaction.Commit();
                return(project);
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw new Exception(e.Message);
            }
        }