Quantcast
Channel: URF - Unit of Work & (extensible/generic) Repositories Framework
Viewing all articles
Browse latest Browse all 1539

Commented Unassigned: Unit Of Work not saving my data to Database [1212]

$
0
0
Hi,
I am using this library in my Windows Forms App.

I am retrieving data from a Web Service, I convert each object to an Entity Object, then set its ObjectState.Added.

Then I use repository to Insert the object.

After that, I call unit of work .SaveChanges.

The database is kept empty and no records are being stored!

Here is some code snippets:

```
static class Program
{
[STAThread]
static void Main()
{
#region Global Configuration
StructureMapSettings.Config();
#endregion

// get instance of main service
var _uow = ObjectFactory.GetInstance<IUnitOfWorkAsync>();
var _service = ObjectFactory.GetInstance<IProjectManagementService>();

// Get & Store projects
_service.StoreProjectsInMiddleware(_service.GetProjectsFromMaster());

_uow.SaveChanges();
}
}
```

```
public class StructureMapSettings
{
public static void Config()
{
ObjectFactory.Configure(factory =>
{
factory.For<IDataContextAsync>().Use<MiddlewareDbContext>();
factory.For<IUnitOfWork>().Use<UnitOfWork>();
factory.For<IRepository<Project>>().Use<Repository<Project>>();
factory.For<IProjectManagementService>().Use<ProjectManagementService>();
factory.For<IAppSettings>().Use<DefaultAppSettings>();
});
}
}
```

```
public interface IProjectManagementService : IService<Data.Project>
{
IEnumerable<Data.Project> GetProjectsFromMaster();
void StoreProjectsInMiddleware(IEnumerable<Data.Project> projects);
Data.Project CreateProject(Data.Project project);
}

public class ProjectManagementService : Service<Data.Project>, IProjectManagementService
{
private readonly IRepository<Data.Project> _repository;

public ProjectManagementService(IRepositoryAsync<Data.Project> repository) : base (repository)
{
_repository = repository;
}

public IEnumerable<Data.Project> GetProjectsFromMaster()
{
return (_repository.GetProjectsFromMaster());
}

public void StoreProjectsInMiddleware(IEnumerable<Data.Project> projects)
{
foreach (var p in projects)
{
var project = _repository
.Query(pro => pro.ProjectId.Equals(p.ProjectId, StringComparison.InvariantCultureIgnoreCase))
.Select()
.SingleOrDefault();

// Add it
if (project == null)
{
p.ObjectState = ObjectState.Added;
_repository.Insert(p);
}
else
{
// Update it
p.ObjectState = ObjectState.Modified;
_repository.Update(p);
}
}
}

public Data.Project CreateProject(Data.Project project)
{
throw new System.NotImplementedException();
}
}
```

And repository is:
```
public static class ProjectManagementRepository
{
#region constants
private const string SourceService = "***";
private const string SourceUsername = "***";
private const string SourcePassword = "***";
private const string SourceTemplate = "***";
private const string SourceCode = "***";
private const string SourceWorkspace = "***";
private const string SourceCreatedSince = "***";
private const string SourceStartsWith = "***";
#endregion

private static readonly IAppSettings Settings = ObjectFactory.GetInstance<IAppSettings>();

public static IEnumerable<Project> GetProjectsFromMaster(this IRepository<Project> repository)
{
// open vbc session
var session = VBCConnecter.OpenSession(
Settings.Get(SourceService),
Settings.Get(SourceUsername),
Settings.Get(SourcePassword),
Settings.Get(SourceCode),
false);

// get workspace
var workspace = VBCConnecter.GetWorkspace(session, Settings.Get(SourceWorkspace));

// get docs created after 1/1/2013
var cc = new CriteriaCollection(typeof (Document));
cc.Add(Document._CreatedOn.IsGreaterOrEqual(DateTime.Parse(Settings.Get(SourceCreatedSince))));
cc.Add(Document._ReferenceID.StartsWith(Settings.Get(SourceStartsWith)));
cc.Add(Document._DocumentTemplate.IsEqual(VBCConnecter.GetDocumentTemplate(workspace, Settings.Get(SourceTemplate))));

return Mapper.MapDocumentCollectionToProjects(VBCConnecter.GetDocuments(workspace, cc));
}
}
```
Comments: Answered on Twitter https://twitter.com/LeLong37/status/451032499616247808.

Viewing all articles
Browse latest Browse all 1539

Trending Articles