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); }
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); }
/// <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); }
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); }
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); } }