Beispiel #1
0
        public PartialViewResult Save(FamilyRole model)
        {
            if (model.Id > 0)
            {
                var familyRole = db.FamilRoles.Where(i => i.Id == model.Id).FirstOrDefault();
                familyRole.Name     = model.Name;
                familyRole.NameFr   = model.NameFr;
                familyRole.IsActive = model.IsActive;
                db.SaveChanges(User.Identity.Name);
            }
            else
            {
                db.FamilRoles.Add(model);
                db.SaveChanges(User.Identity.Name);
            }

            var result = db.FamilRoles.ToList();

            return(PartialView("_List", result));
        }
Beispiel #2
0
        private void AddNewEntityIfNecessary(Participant participant, int[] diagnosesForParticipant, string diagnosesNamesForParticipant)
        {
            bool cityMustBeAdded       = participant.City_Id < 1;
            bool familyMustBeAdded     = participant.Family_Id < 1;
            bool familyRoleMustBeAdded = participant.FamilyRole_Id < 1;
            bool diagnosesMustBeAdded  = diagnosesForParticipant != null &&
                                         diagnosesForParticipant
                                         .Where(d => d < 1)     // Detecter les IDs negatifs (les diagnostiques a ajouter)
                                         .Count() > 0;          // Il en existe.

            if (cityMustBeAdded)
            {
                City newCity = new City
                {
                    Name     = participant.City.Name,
                    Province = db.Provinces.Single(e => e.Id == 2),
                    Region   = db.Regions.Single(e => e.Id == 18)
                };
                db.Cities.Add(newCity);
                db.SaveChanges();

                participant.City    = newCity;
                participant.City_Id = newCity.Id;
            }
            else
            {
                participant.City = db.Cities.Single(c => c.Id == participant.City_Id);
            }

            if (familyMustBeAdded)
            {
                Family newFamily = new Family
                {
                    Name = participant.Family.Name
                };
                db.Families.Add(newFamily);
                db.SaveChanges();

                participant.Family    = newFamily;
                participant.Family_Id = newFamily.Id;
            }

            if (familyRoleMustBeAdded)
            {
                FamilyRole newFamilyRole = new FamilyRole
                {
                    Name   = participant.FamilyRole.Name,
                    NameFr = participant.FamilyRole.Name
                };
                db.FamilRoles.Add(newFamilyRole);
                db.SaveChanges();

                participant.FamilyRole    = newFamilyRole;
                participant.FamilyRole_Id = newFamilyRole.Id;
            }

            if (diagnosesMustBeAdded)
            {
                Diagnosis diagnosis         = null;
                var       newDiagnosesId    = diagnosesForParticipant.Where(d => d < 1).ToArray();
                int[]     newDiagnosesIndex = new int[newDiagnosesId.Count()];
                int       index;
                int       currentDiagnoseIdToChange = 0;

                // Localiser les index dans la liste des IDs diagnostiques originals
                for (int i = 0; i < newDiagnosesId.Count(); i++)
                {
                    index = Array.IndexOf(diagnosesForParticipant, newDiagnosesId[i]);
                    newDiagnosesIndex[i] = index;
                }

                String[] newDiagnosesNames = diagnosesNamesForParticipant
                                             .Split(new string[] { "^^^" }, StringSplitOptions.None);

                foreach (var diagnose in newDiagnosesNames)
                {
                    diagnosis = new Diagnosis
                    {
                        Name     = diagnose,
                        NameFr   = diagnose,
                        IsActive = true
                    };

                    // Ajouter chaque nouvel diagnostique en BD
                    db.Diagnoses.Add(diagnosis);
                    db.SaveChanges();

                    // Mettre-a-jour la liste des IDs disgnotisque originals :
                    //      1, 2, 0, -1, -2, 3  =>
                    //      1, 2, 4,  5,  6, 3

                    diagnosesForParticipant
                    [newDiagnosesIndex[currentDiagnoseIdToChange]] = diagnosis.Id;

                    currentDiagnoseIdToChange++;
                }
            }
        }