private static PointsGroup ConvertToPointsGroup(PointsGroupModel pointsGroupModel) { return(new PointsGroup { PointsGroupId = pointsGroupModel.PointsGroupId, Name = pointsGroupModel.Name, AverageHorizontalDisplacement = pointsGroupModel.AverageHorizontalDisplacement, AverageVerticalDisplacement = pointsGroupModel.AverageVerticalDisplacement, ClusteringOutputJson = JsonConvert.SerializeObject(pointsGroupModel.CalculationOutput) }); }
/// <summary> /// Create a <see cref="PointsGroup"/> and persist it to the database. /// </summary> /// <returns></returns> private async Task <PointsGroupModel> AddPointsGroupInternalAsync(int userId, PointsGroupModel pointsGroupModel) { userId = 1; var pointsGroup = ConvertToPointsGroup(pointsGroupModel); // create itemId for pointsGroup var itemId = await this._itemService.AddItemAsync(ItemType.PointsGroup, ItemPermissionType.Private); pointsGroup.ItemId = itemId; await this._context.PointsGroups.AddAsync(ConvertToPointsGroup(pointsGroupModel)); await this._context.SaveChangesAsync(); await this._context.UserItems.AddAsync(new UserItem { UserId = userId, ItemId = itemId }); await this._context.SaveChangesAsync(); pointsGroup.ClusteringOutputJson = JsonConvert.SerializeObject(this.GetCalculationOutputModel(pointsGroupModel.Points)); this._context.Update(pointsGroup); await this._context.SaveChangesAsync(); return(this.GetPointsGroupModel(pointsGroup, this._context.Items.Single(i => i.ItemId == itemId))); }
/// <summary> /// Persist a <see cref="PointsGroup"/> to the database. /// </summary> public async Task <PointsGroupModel> SavePointsGroupAsync(int userId, PointsGroupModel pointsGroupModel) => await this.AddPointsGroupInternalAsync(userId, pointsGroupModel).ConfigureAwait(false);
public async Task <IActionResult> SavePointsGroup([FromBody] PointsGroupModel pointsGroupModel) { return(Ok(await this._pointsGroupService.SavePointsGroupAsync(this._userId, pointsGroupModel))); }