Exemplo n.º 1
0
        /// <summary>
        /// Add the institution. 
        /// </summary>
        /// <param name="sender">The sender of the events</param>
        /// <param name="e">The args of the event</param>
        protected void AddButton_Click(object sender, EventArgs e)
        {
            Extensions.SqlOperation operation = () =>
            {
                var institutionsDAO = new InstitutionsDAO();

                var departments = (from ListItem department in DepartmentList.Items select new Department {Name = department.Text}).ToList();

                //Intantiate institution
                var language = new Language { Name = LanguageList.SelectedValue };
                var continent = new Continent { Name = ContinentList.SelectedValue };
                var country = new Country { Name = CountryList.SelectedValue, Continent = continent };
                var institution = new Institution(-1,
                                                            NameText.Text,
                                                            DescriptionText.Text,
                                                            CityText.Text,
                                                            InterestText.Text,
                                                            language,
                                                            country,
                                                            departments,
                                                            false);
                var institutionId = institutionsDAO.AddInstitution(institution);
                Response.Redirect("ShowInstitution.aspx?institution=" + institutionId);
            };
            this.Verified(operation, ErrorLabel);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Adds an insitution to the database.
        /// </summary>
        /// <param name="institution">Institution to be added.</param>
        /// <returns>The institutin's ID automatically generated by the database.</returns>
        public int AddInstitution(Institution institution)
        {
            Logger.Debug("Creating institution in database");

            var parametersInstitution = new NameValueCollection
            {
                {"@name", institution.Name},
                {"@description", institution.Description},
                {"@city", institution.City},
                {"@interest", institution.Interest},
                {"@languageName", institution.Language.Name},
                {"@countryName", institution.Country.Name},
                {"@archived", "0"}
            };

            using(var connection = DBManager.GetInstance().GetNewConnection())
            {
                var transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);

                //Insert institution
                var institutionId = DBUtils.ExecuteInsert(
                    "INSERT INTO [Institution] (name,description,city,interest,languageName,countryName,archived) VALUES (@name,@description,@city,@interest,@languageName,@countryName,@archived)",
                    parametersInstitution, "Institution", transaction);

                //Insert departments
                foreach (var department in institution.Departments)
                {
                    var parametersDepartment = new NameValueCollection
                    {
                        {"@name", department.Name},
                        {"@institutionId", institutionId.ToString()},
                        {"@archived", "0"}
                    };

                    DBUtils.ExecuteInsert(
                        "INSERT INTO [Department] (name,institutionId,archived) VALUES (@name,@institutionId,@archived)",
                        parametersDepartment, "Department", transaction);
                }

                transaction.Commit();

                Logger.Debug("Created institution with id {0} in database", institutionId);

                return institutionId;
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Save the changes. 
        /// </summary>
        /// <param name="sender">The sender of the events</param>
        /// <param name="e">The args of the event</param>
        protected void EditButton_Click(object sender, EventArgs e)
        {
            Extensions.SqlOperation operation = () =>
            {
                var tr = (int) ViewState["transaction"];
                var transaction = (SqlTransaction) Session["transaction" + tr];
                var connection = (SqlConnection) Session["connection" + tr];

                var institutionId = Request.QueryString["institution"].ToInt();
                var institutionsDAO = new InstitutionsDAO();

                //Instantiate and fill department list
                var departments = (from ListItem department in DepartmentList.Items select new Department {Name = department.Text}).ToList();

                //Intantiate institution
                var language = new Language { Name = LanguageList.SelectedValue };
                var continent = new Continent { Name = ContinentList.SelectedValue };
                var country = new Country { Name = CountryList.SelectedValue, Continent = continent };
                var institution = new Institution(institutionId,
                                                            NameText.Text,
                                                            DescriptionText.Text,
                                                            CityText.Text,
                                                            InterestText.Text,
                                                            language,
                                                            country,
                                                            departments,
                                                            false);

                institutionsDAO.UpdateInstitution(institution, transaction);

                transaction.Commit();
                connection.Close();

                Response.Redirect("ShowInstitution.aspx?institution=" + institutionId);
            };
            this.Verified(operation, ErrorLabel);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Updates information about an institution (in database).
        /// </summary>
        /// <param name="institution">Represents the institution to be updated.</param>
        /// <param name="transaction">Transactin to be used.</param>
        public void UpdateInstitution(Institution institution, SqlTransaction transaction)
        {
            NameValueCollection parameters;

            var oldDepartments = GetDepartments(institution.Id, transaction);  //Department already present in DB

            Logger.Debug("Archiving old departments of institution with id {0} in database", institution.Id);

            //Delete all the old departments
            foreach(var oldDepartment in oldDepartments)
            {
                if (!institution.Departments.ContainsDepartmentWithName(oldDepartment.Name))
                {
                    ArchiveDepartment(oldDepartment.Id, transaction);
                }
            }

            Logger.Debug("Archived old departments of institution with id {0} in database", institution.Id);

            Logger.Debug("Adding new departments of institution with id {0} into database", institution.Id);

            //Add all the new departments
            foreach(var department in institution.Departments)
            {
                if (!oldDepartments.ContainsDepartmentWithName(department.Name))
                {
                    parameters = new NameValueCollection
                    {
                        {"@name", department.Name},
                        {"@institutionId", institution.Id.ToString()},
                        {"@archived", "0"}
                    };

                    DBUtils.ExecuteNonQuery(
                        "INSERT INTO [Department] (name,institutionId,archived) VALUES (@name,@institutionId,@archived)",
                        transaction,
                        parameters);
                }
            }

            Logger.Debug("Added new departments of institution with id {0} into database", institution.Id);

            //Update institution data
            parameters = new NameValueCollection
            {
                {"@institutionId", institution.Id.ToString()},
                {"@name", institution.Name},
                {"@description", institution.Description},
                {"@city", institution.City},
                {"@interest", institution.Interest},
                {"@languageName", institution.Language.Name},
                {"@countryName", institution.Country.Name},
                {"@archived", "0"}
            };

            Logger.Debug("Updating information of institution with id {0} in database", institution.Id);

            DBUtils.ExecuteNonQuery(
                "UPDATE [Institution] SET name = @name, description = @description, city = @city, interest = @interest, languageName = @languageName, countryName = @countryName WHERE id = @institutionId",
                transaction,
                parameters);

            Logger.Debug("Updated information of institution with id {0} in database", institution.Id);
        }