public void GetEntitiesWithFiltersTest() { DbDataProvider provider = new DbDataProvider(); var result = provider.GetEntities(5, 50, FieldCriteriasBuilder.GetFilterOnCode()); Assert.AreNotEqual(0, result.Length); }
/// <summary> /// Retrieve missing information by id or username of the entities and build the /// Enrollment to be inserted in the database /// </summary> /// <param name="enroll"></param> public void InsertEnrollment(EnrollmentEntity enroll) { DbDataProvider ddp = new DbDataProvider(); var resApplicant = ddp.GetResourceByIdOrUsername(-1, enroll.Resource.Username); if (resApplicant.Count != 1) { throw new Exception("Error retrieving applicant resource by username " + enroll.Resource.Username); } var resLeader = ddp.GetResourceByIdOrUsername(-1, enroll.ProjectLeader.Username); if (resLeader.Count != 1) { throw new Exception("Error retrieving applicant leader resource by username " + enroll.ProjectLeader.Username); } var course = ddp.GetCourseById(enroll.Course.Id); if (course == null) { throw new Exception("Error retrieving course by id " + enroll.Course.Id); } enroll.Course = course; enroll.Resource = resApplicant[0]; enroll.ProjectLeader = resLeader[0]; ddp.InsertEnrollment(enroll); }
/// <summary> /// Retrieve missing information by id or username of the entities and build the /// Teacher that will be updated in the db /// </summary> /// <param name="teacher"></param> public void EditTeacher(TeacherEntity teacher) { DbDataProvider ddp = new DbDataProvider(); //if resource not arriving from controller if (teacher.Resource?.Id == -1) { var result = ddp.GetResourceByIdOrUsername(-1, teacher.Resource.Username); if (result != null && result.Count == 1) { teacher.Resource = result[0]; } else { throw new Exception("Cannot retrieve resource form username"); } } var course = ddp.GetCourseById(teacher.Course.Id); if (course != null) { teacher.Course = course; } else { throw new Exception("Cannot retrieve course for id " + teacher.Course.Id); } ddp.EditTeacher(teacher); }
public void CountTestWithFilters() { DbDataProvider provider = new DbDataProvider(); long count = provider.Count(FieldCriteriasBuilder.GetFilterOnCode()); Assert.AreNotEqual(0, count); }
public void GetEntitiesTest() { DbDataProvider provider = new DbDataProvider(); var result = provider.GetEntities(200, 50, FieldCriteriasBuilder.GetNoCriteria()); Assert.AreNotEqual(0, result.Length); }
public void CountTest() { DbDataProvider provider = new DbDataProvider(); long count = provider.Count(FieldCriteriasBuilder.GetNoCriteria()); Assert.AreNotEqual(0, count); }
public static void ClassInitialize(TestContext testContext) { var sqlFactory = SqlClientFactory.Instance; var dbProvider = new DbDataProvider(sqlFactory, TestSqlConnection); ProviderDefaults.AppProvider = dbProvider; }
protected AutoCollectionTests(IDataProvider provider) { _provider = (DbDataProvider)provider; _provider.SetLogger(new TextWriterLogAdapter(Console.Out)); _repo = new SimpleRepository(_provider, SimpleRepositoryOptions.RunMigrations); TestSupport.CleanTables(_provider, "Directors", "Movies", "Comments", "NonVirtualRelationProperties"); }
public AutoCollectionTests(IDataProvider provider) { _provider = (DbDataProvider)provider; _provider.Log = Console.Out; _repo = new SimpleRepository(_provider, SimpleRepositoryOptions.RunMigrations); TestSupport.CleanTables(_provider, "Directors", "Movies", "Comments", "NonVirtualRelationProperties"); }
public void GetEntityTest() { DbDataProvider provider = new DbDataProvider(); //var result = provider.GetEntitiesId(20, 1, FieldCriteriasBuilder.GetNoCriteria()); //var entity = provider.GetEntity(result.First());11dd9a0d-4523-4704-9be3-68eeaf5ce89a var entity = provider.GetEntity("11dd9a0d-4523-4704-9be3-68eeaf5ce89a"); //Assert.AreNotEqual(0, result.Length); }
public void CountWithWhereFilterTest() { var sqlFactory = SqlClientFactory.Instance; var dbProvider = new DbDataProvider(sqlFactory, TestSqlConnection); var count = dbProvider.GetCount(DataModel <idlist> .NewQuery().WhereColumn["id"] < 4); Assert.IsTrue(count == 4); }
public void CountTest() { var sqlFactory = SqlClientFactory.Instance; var dbProvider = new DbDataProvider(sqlFactory, TestSqlConnection); var count = dbProvider.GetCount(DataModel <idlist> .NewQuery()); Assert.IsTrue(count == 1000); }
public PageResult<string> GetResult(int page, FieldCriteria[] criterias) { var provider = new DbDataProvider(); var result = new PageResult<string>(); result.TotalCount = Convert.ToInt32(provider.Count(criterias)); result.PageCount = result.TotalCount / pageSize + 1; result.Page = page; result.Result = provider.GetEntitiesId(page, pageSize, criterias); return result; }
/// <summary> /// Check if the resource has duplicate id or username. If this is the case return false, true otherwise. /// </summary> /// <param name="res"></param> /// <returns></returns> private bool CheckResourceInsert(ResourceEntity res) { DbDataProvider ddp = new DbDataProvider(); var result = ddp.GetResourceByIdOrUsername(res.Id, res.Username); if (result != null) { return(result.Count <= 0); } return(false); }
//TODO: Why do we need this? How can we have a schema if we don't know the connection? //public static IDataProvider GetProvider(string connectionStringName, string providerName, IDatabaseSchema schema) //{ // IDataProvider _provider = GetProvider(connectionStringName,providerName); // if (!_dataProviders.ContainsKey(connectionStringName)) // { // _provider = LoadProvider(connectionStringName); // _provider.Schema = schema; // _dataProviders.Add(connectionStringName, _provider); // } // else // { // _provider = _dataProviders[connectionStringName]; // } // return _provider; //} private static IDataProvider LoadProvider(string connectionString, string providerName) { //TODO: This is throwing errors and not working IDataProvider result = new DbDataProvider(connectionString, providerName); if(result == null) throw new InvalidOperationException("There is no SubSonic provider for the provider you're using"); return result; }
public ChatHub( DbDataProvider dbDataProvider, UserManager <ApplicationUser> userManager, ILogger <ChatHub> logger, ControllerUtils controllerUtils ) { this.dbDataProvider = dbDataProvider; this.userManager = userManager; this.logger = logger; this.controllerUtils = controllerUtils; }
/// <summary> /// Generate the username of the new resource and check if the firts 7 chars are the same of the old one. /// In that case means that the username in not modified and replace the new generated with the old one /// and update the resource in the db. /// /// </summary> /// <param name="newRes"></param> /// <param name="oldRes"></param> public void EditResource(ResourceEntity newRes, ResourceEntity oldRes) { DbDataProvider ddp = new DbDataProvider(); newRes.Username = GenerateUsername(newRes); //if the generated username match the old one don't increase the last number by one if (newRes.Username.Substring(0, 7).Equals(oldRes.Username.Substring(0, 7), StringComparison.OrdinalIgnoreCase)) { newRes.Username = oldRes.Username; } ddp.EditResource(newRes); }
public static Category CreateInstance(StringBuilder caption) { if (!DbDataProvider.IsAlreadyInDb(caption)) { var instance = new Category(caption, TestData.RandomData.GetRandomText(5, 25)); if (instance.AddedToDb()) { instance.DataIsAddedToDb(instance.ToString()); return(instance); } } return(default(Category)); }
public void DeepLoadEntityManyToOneTest1() { var sqlFactory = SqlClientFactory.Instance; var dbProvider = new DbDataProvider(sqlFactory, TestSqlConnection); var query = new DataModelQuery <Contact>() .WhereProperty["ID"] == 1; var contact = dbProvider.DeepLoadModel(query) as Contact; Assert.IsNotNull(contact); Assert.IsTrue(contact.Name == "Bobby Joe"); Assert.IsNotNull(contact.Company); Assert.IsTrue(contact.Company.CompanyName == "Foobar, Ltd."); }
public GroupController( ILogger <GroupController> logger, DbDataProvider dbDataProvider, ControllerUtils controllerUtils, UserManager <ApplicationUser> userManager, IHubContext <ChatHub> hubContext ) { this.logger = logger; this.dbDataProvider = dbDataProvider; this.controllerUtils = controllerUtils; this.userManager = userManager; this.hubContext = hubContext; }
/// <summary> /// Retrieve missing information by id or username of the entities and build the /// Enrollment that will be updated /// </summary> /// <param name="enroll"></param> public void EditEnrollment(EnrollmentEntity enroll) { DbDataProvider ddp = new DbDataProvider(); //if resource not arriving from controller if (enroll.Resource.Id == -1) { var result = ddp.GetResourceByIdOrUsername(-1, enroll.Resource.Username); if (result != null && result.Count == 1) { enroll.Resource = result[0]; } else { throw new Exception("Cannot retrieve applicant from username " + enroll.Resource.Username); } } //if project leader not arriving from controller if (enroll.ProjectLeader.Id == -1) { var result = ddp.GetResourceByIdOrUsername(-1, enroll.ProjectLeader.Username); if (result != null && result.Count == 1) { enroll.ProjectLeader = result[0]; } else { throw new Exception("Cannot retrieve project leader from username " + enroll.ProjectLeader.Username); } } var course = ddp.GetCourseById(enroll.Course.Id); if (course != null) { enroll.Course = course; } else { throw new Exception("Cannot retrieve course for id " + enroll.Course.Id); } ddp.EditEnrollment(enroll); }
/// <summary> /// Generate the username based on the resource data and insert in the database /// if hasn't a duplicate ID or username /// </summary> /// <param name="res"></param> public void InsertResource(ResourceEntity res) { if (string.IsNullOrEmpty(res.Username)) { res.Username = GenerateUsername(res); } if (CheckResourceInsert(res)) { DbDataProvider ddp = new DbDataProvider(); ddp.InsertResource(res); } else { throw new Exception("Cannot insert resource. Duplicate ID or Username"); } }
public void EditCourse(CourseEntity course) { DbDataProvider ddp = new DbDataProvider(); //if coordinator not arriving from controller if (course.Coordinator?.Id == -1) { var result = ddp.GetResourceByIdOrUsername(-1, course.Coordinator.Username); if (result != null && result.Count == 1) { course.Coordinator = result[0]; } else { throw new Exception("Cannot retrieve resource form user or id"); } } ddp.EditCourse(course); }
public void DeepLoadEntityOneToManyTest2() { var sqlFactory = SqlClientFactory.Instance; var dbProvider = new DbDataProvider(sqlFactory, TestSqlConnection); var query = new DataModelQuery <DataModel <Company> >() .WhereProperty["ID"] == 2; var decompany = dbProvider.DeepLoadModel(query) as DataModel <Company>; Assert.IsNotNull(decompany); Company company = decompany.Entity; Assert.IsNotNull(company); Assert.IsNotNull(company.Contacts, "Contacts not populated"); Assert.IsTrue(company.Contacts.Count == 2, company.Contacts.Count.ToString() + " loaded (expected 2)."); Assert.IsTrue(company.Contacts[0].Name == "Bobby Joe" || company.Contacts[0].Name == "Jane Lane"); Assert.IsTrue(company.Contacts[1].Name == "Bobby Joe" || company.Contacts[1].Name == "Jane Lane"); }
public static DbConnection CreateDbConnection(DbDataProvider provider, string connectionString, bool openConnection = false) { switch (provider) { case DbDataProvider.MsSql: return(CreateDbConnection("System.Data.SqlClient", connectionString, openConnection)); case DbDataProvider.Oracle: throw new NotSupportedException("Please implement Unit of Work with Oracle Client."); case DbDataProvider.Odbc: throw new NotSupportedException("Please implement Unit of Work with Odbc Client."); case DbDataProvider.OleDb: throw new NotSupportedException("Please implement Unit of Work with OleDb Client."); default: throw new NotSupportedException("Not supported data provider."); } }
public void DeepSaveEntityTest() { // todo: test all four relationship types try { var sqlFactory = SqlClientFactory.Instance; var dbProvider = new DbDataProvider(sqlFactory, TestSqlConnection); var query = new DataModelQuery <DataModel <Company> >() .WhereProperty["ID"] == 1; var decompany = dbProvider.DeepLoadModel(query); var company = decompany.Entity; company.CompanyName += "_"; foreach (var c in company.Contacts) { c.Name += "_"; } decompany.Save(true); query = new DataModelQuery <DataModel <Company> >() .WhereProperty["ID"] == 1; decompany = dbProvider.DeepLoadModel(query); company = decompany.Entity; Assert.IsTrue(company.CompanyName.Length > 1 && company.CompanyName.EndsWith("_")); Assert.IsTrue(company.Contacts[0] .Name.Length > 1 && company.Contacts[0] .Name.EndsWith("_")); Assert.IsTrue(company.Contacts[company.Contacts.Count - 1] .Name.Length > 1 && company.Contacts[company.Contacts.Count - 1] .Name.EndsWith("_")); } finally { // clean-up ReloadData_CompanyContact(); } }
/// <summary> /// Generate the username based on the Name, Surname and the number of the already inserted username with the same value. /// Accepting only 8 chars the valid username are composed by the first 5 chars of the surname, the first 2 chars of the name /// and a number. For this reason only 9 resources with the same prefix are accepted by the system. Further Resources inserted /// past the 9 admitted are not managed and will be refused. /// If a name or surname is too short to match the 7 char requisite the remaining characters will be padded with a 'A' char. /// The result username will be in uppercase. /// </summary> /// <param name="res"></param> /// <returns>The username generated</returns> private string GenerateUsername(ResourceEntity res) { try { var partSurn = res.Surname.Length < 5 ? res.Surname : res.Surname.Substring(0, 5); var partName = (res.Name.Length < (7 - partSurn.Length)) ? res.Name : res.Name.Substring(0, 7 - partSurn.Length); string partialUsername = $"{partSurn}{partName}"; partialUsername = partialUsername.PadRight(7, 'a').ToUpper(); DbDataProvider ddp = new DbDataProvider(); var result = ddp.GetResourcesByPartialUsername(partialUsername); if (result.Count() == 0) { return(partialUsername + 1); } var numbers = result.Select(x => int.Parse(x.Username.Substring(7, 1))); //the numbers are in sequence and no empty slot left if (numbers.Max() == result.Count) { return(partialUsername + (result.Count + 1)); } //there are some free numbers in the sequence else { //search for the first free number and take it for (int i = 1; i <= numbers.Count(); i++) { if (numbers.FirstOrDefault(x => x == i) == 0) { return(partialUsername + i); } } } return(partialUsername.Substring(0, 6) + 10); //only 8 chars in db..to be managed in future } catch (Exception ex) { Logger.DbLog.LogError("Error generating username for resource " + res, ex); throw ex; } }
/// <summary> /// Retrieve missing information by id or username of the entities and build the /// Teacher to be inserted in the database /// </summary> /// <param name="tch"></param> public void InsertTeacher(TeacherEntity tch) { DbDataProvider ddp = new DbDataProvider(); var resource = ddp.GetResourceByIdOrUsername(-1, tch.Resource.Username); if (resource.Count != 1) { throw new Exception("Error retrieving resource by username " + tch.Resource.Username); } var course = ddp.GetCourseById(tch.Course.Id); if (course == null) { throw new Exception("Error retrieving course by id " + tch.Course.Id); } tch.Course = course; tch.Resource = resource[0]; ddp.InsertTeacher(tch); }
public void DeepLoadEntityManyToManyTest() { var sqlFactory = SqlClientFactory.Instance; var dbProvider = new DbDataProvider(sqlFactory, TestSqlConnection); var query = new DataModelQuery <DataModel <Group> >(); var groups = dbProvider.DeepLoadModels(query); Assert.IsTrue(groups.Count == 2, "Groups did not load"); Assert.IsNotNull(groups[0].Entity, "Group 0 Entity was not set"); Assert.IsNotNull(groups[0].Entity.Users, "Group 0 Users were not set"); Assert.IsTrue(groups[0].Entity.Users.Count == 2, "Users count (group 0 of 0,1) is not 2"); Assert.IsNotNull(groups[1].Entity, "Group 1 Entity was not set"); Assert.IsNotNull(groups[0].Entity.Users, "Group 1 Users were not set"); Assert.IsTrue(groups[1].Entity.Users.Count == 2, "Users count (group 1 of 0,1) is not 2"); Assert.IsTrue(groups[0].Entity.Users[0].ID != groups[1].Entity.Users[0].ID, "Same user loaded between groups"); Assert.IsTrue(groups[0].Entity.Users[0].ID != groups[1].Entity.Users[1].ID, "Same user loaded between groups"); Assert.IsTrue(groups[1].Entity.Users[0].ID != groups[0].Entity.Users[0].ID, "Same user loaded between groups"); }
public void DefaultDBProviderTest() { var sqlFactory = SqlClientFactory.Instance; var dbProvider = new DbDataProvider(sqlFactory, TestSqlConnection); ProviderDefaults.AppProvider = dbProvider; var poco = new MockPoco(); poco.MockStringValue = "Provider wuz here"; var pocoModel = new DataModel <MockPoco>(poco); pocoModel.Save(); var q = DataModel <MockPoco> .NewQuery() .WhereProperty["MockStringValue"] .IsEqualTo("Provider wuz here"); pocoModel = dbProvider.LoadModel(q); Assert.IsNotNull(poco); Assert.IsTrue(pocoModel.Entity.MockStringValue == "Provider wuz here"); Assert.IsTrue(pocoModel.Entity.ID > 0); // clean-up }
public Entity GetEntity(string identifier) { var provider = new DbDataProvider(); return provider.GetEntity(identifier); }
public CourseEntity DeleteCourse(CourseEntity course) { DbDataProvider ddp = new DbDataProvider(); return(ddp.DeleteCourse(course)); }
public CourseEntity GetCourse(int id) { DbDataProvider ddp = new DbDataProvider(); return(ddp.GetCourseById(id)); }
public List <CourseEntity> GetAllCourses() { DbDataProvider ddp = new DbDataProvider(); return(ddp.GetAllCourses()); }
protected void ProcessData(object sender, ElapsedEventArgs args) { _timer.Enabled = false; SenderService.SendData(DbDataProvider.GetMarks()); _timer.Enabled = true; }
public void DeleteEnrollment(EnrollmentEntity enroll) { DbDataProvider ddp = new DbDataProvider(); ddp.DeleteEnrollment(enroll); }
public EnrollmentEntity GetEnrollment(int id) { DbDataProvider ddp = new DbDataProvider(); return(ddp.GetEnrollmentById(id)); }
public List <EnrollmentEntity> GetAllEnrollments() { DbDataProvider ddp = new DbDataProvider(); return(ddp.GetAllenrollments()); }