Exemplo n.º 1
0
        public async Task <UpsertModel> UpsertParent(UpsertMode mode, ParentViewModel model)
        {
            var upsert = new UpsertModel();

            try
            {
                Activity activity;
                string   title;
                System.Text.StringBuilder builder;

                // Get Student
                //var student = db.Students.FirstOrDefault(x => x.StudentId == model.StudentId);

                // Apply changes
                Parent = model.ParseAsEntity(Parent);

                builder = new System.Text.StringBuilder();

                if (model.ParentId == 0)
                {
                    db.Parents.Add(Parent);


                    title = "Parent Recorded";
                    builder.Append("A Parent record has been made : " + model.FirstName + " " + model.LastName).AppendLine();
                }
                else
                {
                    db.Entry(Parent).State = System.Data.Entity.EntityState.Modified;

                    title = "Parent Updated";
                    builder.Append("The following changes have been made to the Parent details");

                    if (mode == UpsertMode.Admin)
                    {
                        builder.Append(" (by the Admin)");
                    }

                    builder.Append(":").AppendLine();
                }

                await db.SaveChangesAsync();

                ParentId = Parent.ParentId;

                // update student parent relationship
                UpdateStudents(model.SelectedStudents);

                // Save activity now so we have a ParentId. Not ideal, but hey
                activity        = CreateActivity(title, builder.ToString());
                activity.UserId = ServiceUserId;

                await db.SaveChangesAsync();

                if (model.ParentId == 0)
                {
                    upsert.ErrorMsg = "Parent record created successfully";
                }
                else
                {
                    upsert.ErrorMsg = "Parent record updated successfully";
                }

                upsert.RecordId = Parent.ParentId.ToString();
            }
            catch (Exception ex)
            {
                upsert.ErrorMsg = ex.Message;
                //RecordException("Update Parent Error", ex);
            }

            return(upsert);
        }