private void SaveFacialFeature() { var player = Game.Player.Character.Handle; var saveFacialFeature = new FacialFeature { NoseWidth = API.GetPedFaceFeature(player, 0), NosePeakHeight = API.GetPedFaceFeature(player, 1), NosePeakLength = API.GetPedFaceFeature(player, 2), NoseBoneHeight = API.GetPedFaceFeature(player, 3), NosePeakLowering = API.GetPedFaceFeature(player, 4), NoseBoneTwist = API.GetPedFaceFeature(player, 5), EyeBrowHeight = API.GetPedFaceFeature(player, 6), EyeBrowLength = API.GetPedFaceFeature(player, 7), CheekBoneHeight = API.GetPedFaceFeature(player, 8), CheekBoneWidth = API.GetPedFaceFeature(player, 9), CheekWidth = API.GetPedFaceFeature(player, 10), EyeOpenings = API.GetPedFaceFeature(player, 11), LipThickness = API.GetPedFaceFeature(player, 12), JawBoneWidth = API.GetPedFaceFeature(player, 13), JawBoneLength = API.GetPedFaceFeature(player, 14), ChinBoneLowering = API.GetPedFaceFeature(player, 15), ChinBoneLength = API.GetPedFaceFeature(player, 16), ChinBoneWidth = API.GetPedFaceFeature(player, 17), ChinDimple = API.GetPedFaceFeature(player, 18), NeckThickness = API.GetPedFaceFeature(player, 19), }; this.Rpc.Event(CharacterEvents.SaveFacialFeature).Trigger(this.activeCharacter.Id, saveFacialFeature); }
private async void SaveFacialFeature(IRpcEvent e, Guid characterId, FacialFeature facialFeature) { using (var context = new StorageContext()) using (var transaction = context.Database.BeginTransaction()) { try { var save = context.Characters.Include(c => c.FacialFeature).Single(c => c.Id == characterId); facialFeature.Id = save.FacialFeature.Id; context.Entry(save.FacialFeature).CurrentValues.SetValues(facialFeature); await context.SaveChangesAsync(); transaction.Commit(); } catch (Exception ex) { this.Logger.Error(ex, "Character Facial Features Save"); transaction.Rollback(); } } }