public void SuccessfullyAttachUntrackedEntity()
        {
            var connection = TestConfiguration.GetConnection();
            var context    = new MongoDbContext(connection);
            var dbSet      = new MongoDbSet <DbSetModel>(context);

            var model = new DbSetModel
            {
                Id = "abcd"
            };

            dbSet.Add(model);

            context.SaveChanges();

            ResetMongoDb();

            context = new MongoDbContext(connection);
            dbSet   = new MongoDbSet <DbSetModel>(context);

            var result = dbSet.AsNoTracking().FirstOrDefault();

            context.Attach(result);

            Assert.AreEqual(MongoFramework.Infrastructure.EntityEntryState.NoChanges, context.ChangeTracker.GetEntry(result).State);
        }
示例#2
0
        public void AttachRejectsMismatchedEntity()
        {
            var connection = TestConfiguration.GetConnection();
            var tenantId   = TestConfiguration.GetTenantId();
            var context    = new MongoDbTenantContext(connection, tenantId);
            var dbSet      = new MongoDbTenantSet <DbSetModel>(context);

            var model = new DbSetModel
            {
                Id = "abcd"
            };

            dbSet.Add(model);

            context.SaveChanges();

            ResetMongoDb();

            context = new MongoDbTenantContext(connection, tenantId);
            dbSet   = new MongoDbTenantSet <DbSetModel>(context);

            var result = dbSet.AsNoTracking().FirstOrDefault();

            result.TenantId = tenantId + "a";

            Assert.ThrowsException <MultiTenantException>(() => context.Attach(result));
        }
示例#3
0
        public static SetModel Convert(DbSetModel inputModel)
        {
            SetModel outputModel = new SetModel();

            outputModel.trainingData = inputModel.trainingData;
            outputModel.setDate      = inputModel.Date;
            outputModel.comment      = inputModel.comment;

            return(outputModel);
        }
示例#4
0
        public async Task <int> SaveItemAsync(DbSetModel item)
        {
            if (item.Id != 0)
            {
                await database.UpdateAsync(item);

                return(item.Id);
            }
            else
            {
                await database.InsertAsync(item);

                return(item.Id);
            }
        }
        public async void Add()
        {
            DbSetModel setModel = new DbSetModel();

            setModel.Date    = DateTime.Now;
            setModel.comment = comment;
            string trainingData = "";

            foreach (var a in repsKgsList)
            {
                trainingData += "| " + a.Reps + "*" + a.Kgs + " |";
            }
            //setModel.trainingData = "3*23 | 13*0 | 12*2";
            string[] ids = exerciseModel.trainingId.Split('_');
            setModel.trainingData = trainingData;
            setModel.trainingId   = exerciseModel.trainingId;


            bool answer = await App.Current.MainPage.DisplayAlert("Is data correct?", trainingData + "\n\n" + comment, "Yes", "No");

            if (!answer)
            {
                return;
            }

            if (setsList.Count != 0)
            {
                if (setsList.First().setDate.Date == DateTime.Now.Date)
                {
                    bool dateAnswer = await App.Current.MainPage.DisplayAlert("Caution!", "You have already done this exercise today, do you want to add else one entry?", "Yes", "No");

                    if (!dateAnswer)
                    {
                        return;
                    }
                }
            }


            try
            {
                await App.SetDatabase.SaveItemAsync(setModel);

                //changing data in workout
                DbWorkoutModel tmpWorkModel = new DbWorkoutModel();
                await App.WorkoutDatabase.CreateTable();

                foreach (var a in await App.WorkoutDatabase.GetItemsAsync())
                {
                    if (a.Id == Convert.ToInt32(ids[0]))
                    {
                        tmpWorkModel = a;
                        break;
                    }
                }
                tmpWorkModel.lastTrainingDate = DateTime.Now;
                await App.WorkoutDatabase.SaveItemAsync(tmpWorkModel);

                //changing data in exercise
                DbExerciseModel tmpExModel = new DbExerciseModel();
                tmpExModel.trainingId       = exerciseModel.trainingId;
                tmpExModel.Title            = exerciseModel.titleExcercice;
                tmpExModel.Id               = Convert.ToInt32(ids[1]);
                tmpExModel.lastTrainingDate = DateTime.Now;
                tmpExModel.amountOfSets     = exerciseModel.amountOfSets;
                //tmpExModel.comment = exerciseModel.comment;
                await App.ExerciseDatabase.SaveItemAsync(tmpExModel);
            }
            catch
            {
                await App.Current.MainPage.DisplayAlert("Oops, something wrong!", "We couldn't save expression to dataBase, write to developer", "OK");
            }

            Comment = "";
            List <RepsKgsModel> tmpKgList = new List <RepsKgsModel>(repsKgsList);

            foreach (var a in tmpKgList)
            {
                a.Kgs  = "";
                a.Reps = "";
            }
            RepsKgsList = tmpKgList;

            OnAppearing(new object(), new EventArgs());
        }
示例#6
0
 public async Task <int> DeleteItemAsync(DbSetModel item)
 {
     return(await database.DeleteAsync(item));
 }