Exemplo n.º 1
0
        private static void CheckBeforeDelete(DataModel.Project dbItem, Project project)
        {
            if (project.Id == null)
            {
                throw new InconsistencyException
                      (
                          string.Format(Resources.TextMessages.CantDeleteNewItem, project.GetType().Name)
                      );
            }

            if (dbItem == null)
            {
                throw new InconsistencyException
                      (
                          string.Format(Resources.TextMessages.WasAlreadyDeleted, project.GetType().Name)
                      );
            }

            if (dbItem.Version != project.Version)
            {
                throw new InconsistencyException
                      (
                          string.Format(Resources.TextMessages.ItemWasAlreadyChanged, project.GetType().Name)
                      );
            }
        }
Exemplo n.º 2
0
 private ProjectDetails toProjectDetails(DataModel.Project project)
 {
     var users = new List<string>();
     DateTime time = DateTime.MinValue + TimeSpan.FromSeconds(getTime(project));
     foreach (var u in project.User)
         users.Add(u.Name);
     return new ProjectDetails { Id = project.Id, Name = project.Name, Description = project.Description, Time = time, Users = users };
 }
Exemplo n.º 3
0
 private long getTime(DataModel.Project project)
 {
     long time = 0;
     foreach (var task in project.Task)
         foreach (var timelog in task.TimeLog)
             time += timelog.Time;
     foreach (var p in project.SubProject)
         time += getTime(p);
     return time;
 }
Exemplo n.º 4
0
        private void removeProject(DataModel.Project project)
        {
            foreach (var subproject in new List<DataModel.Project>(project.SubProject))
                removeProject(subproject);
            foreach (var task in new List<DataModel.Task>(project.Task))
                removeTask(task.Id);
            project.User.Clear();
            ctx.ProjectSet.Remove(project);

        }
Exemplo n.º 5
0
 private DataModel.Project addProject(ProjectDetails details)
 {
     var project = new DataModel.Project()
     {
         Name = details.Name,
         Description = details.Description
     };
     foreach (var u in ctx.UserSet.Where(r => details.Users.Contains(r.Name)))
     {
         project.User.Add(u);
     }
     return project;
 }
Exemplo n.º 6
0
        private Project ToProject(DataModel.Project project)
        {
            var users = new List<string>();
            DateTime time = DateTime.MinValue + TimeSpan.FromSeconds(getTime(project));
            foreach (var u in project.User)
                users.Add(u.Name);
            var children = new List<ChildProject>();
            foreach (var p in project.SubProject)
            {
                var child = new ChildProject();
                child.Name = p.Name;
                child.Id = p.Id;
                children.Add(child);

            }
            return new Project { Id = project.Id, Name = project.Name, Time = time, Users = users , Children = children};
        }
Exemplo n.º 7
0
        private void Merge(DataModel.Project dbProject, Project project)
        {
            dbProject.Category = _context.Categories.FirstOrDefault(x => x.Code == project.Category.Code);

            dbProject.CategoryId        = project.Category.Id.Value;
            dbProject.Code              = project.Code;
            dbProject.Description       = project.Description;
            dbProject.DescriptionShort  = project.DescriptionShort;
            dbProject.DisplayName       = project.DisplayName;
            dbProject.PosterDescription = project.PosterDescription;
            dbProject.PosterUrl         = project.PosterUrl;
            dbProject.ReleaseDate       = project.ReleaseDate;
            dbProject.Version++;

            Merge(dbProject, project.ExternalUrls);
            Merge(dbProject, project.GalleryImages);
        }
Exemplo n.º 8
0
        private void Merge(DataModel.Project dbProject, IEnumerable <ExternalUrl> externalUrls)
        {
            foreach (var item in dbProject.ExternalUrls ?? new List <DataModel.ProjectExternalUrl>())
            {
                var remoteItem = externalUrls?.FirstOrDefault(x => x.Id.HasValue && x.Id == item.ExternalUrlId);
                if (remoteItem == null)
                {
                    _context.ExternalUrls.Remove(item.ExternalUrl);
                }
                else
                {
                    item.ExternalUrl.DisplayName = remoteItem.DisplayName;
                    item.ExternalUrl.Url         = remoteItem.Url;
                    item.ExternalUrl.Version++;
                }
            }

            foreach (var item in externalUrls?.Where(x => x.Id == null) ?? new List <ExternalUrl>())
            {
                dbProject.ExternalUrls.Add(AbstractionsConverter.ToProjectExternalUrl(item));
            }
        }
Exemplo n.º 9
0
        private void Merge(DataModel.Project dbProject, IEnumerable <GalleryImage> galleryImages)
        {
            foreach (var item in dbProject.GalleryImages ?? new List <DataModel.GalleryImage>())
            {
                var remoteItem = galleryImages?.FirstOrDefault(x => x.Id.HasValue && x.Id == item.Id);

                if (remoteItem == null)
                {
                    _context.GalleryImages.Remove(item);
                }
                else
                {
                    item.ExtraUrl = remoteItem.ExtraUrl;
                    item.ImageUrl = remoteItem.ImageUrl;
                    item.Version++;
                }
            }

            foreach (var item in galleryImages?.Where(x => x.Id == null) ?? new List <GalleryImage>())
            {
                dbProject.GalleryImages.Add(AbstractionsConverter.ToGalleryImage(item));
            }
        }
Exemplo n.º 10
0
        private void CheckBeforeUpdate(DataModel.Project dbItem, Project project)
        {
            if (dbItem == null)
            {
                throw new InconsistencyException
                      (
                          string.Format(Resources.TextMessages.WasAlreadyDeleted, project.GetType().Name)
                      );
            }

            if (string.IsNullOrEmpty(project.Code))
            {
                throw new InconsistencyException
                      (
                          string.Format(Resources.TextMessages.ThePropertyCantBeEmpty, nameof(project.Code))
                      );
            }

            if (string.IsNullOrEmpty(project.DisplayName))
            {
                throw new InconsistencyException
                      (
                          string.Format(Resources.TextMessages.ThePropertyCantBeEmpty, nameof(project.DisplayName))
                      );
            }

            if (dbItem.Version != project.Version)
            {
                throw new InconsistencyException
                      (
                          string.Format(Resources.TextMessages.ItemWasAlreadyChanged, project.GetType().Name)
                      );
            }

            if (dbItem.Code != project.Code && _context.Projects.Any(x => x.Code == project.Code))
            {
                throw new InconsistencyException
                      (
                          string.Format(Resources.TextMessages.PropertyDuplicate, nameof(project.Code))
                      );
            }

            foreach (var item in dbItem.ExternalUrls)
            {
                var updated = project.ExternalUrls.FirstOrDefault(x => x.Id == item.ExternalUrlId);

                if (updated == null)
                {
                    continue;
                }

                if (item.ExternalUrl.Version != updated.Version)
                {
                    throw new InconsistencyException
                          (
                              string.Format(Resources.TextMessages.ItemWasAlreadyChanged, nameof(updated))
                          );
                }
            }


            foreach (var dbGalleryitem in dbItem.GalleryImages)
            {
                var updatedGalleryItem = project.GalleryImages?.FirstOrDefault(x => x.Id == dbGalleryitem.Id);
                if (updatedGalleryItem == null)
                {
                    continue;
                }

                if (dbGalleryitem.Version != updatedGalleryItem.Version)
                {
                    throw new InconsistencyException
                          (
                              string.Format(Resources.TextMessages.ItemWasAlreadyChanged, dbGalleryitem.GetType().Name)
                          );
                }
            }

            foreach (var item in project.ExternalUrls ?? new List <ExternalUrl>())
            {
                if (string.IsNullOrEmpty(item.DisplayName))
                {
                    throw new InconsistencyException
                          (
                              string.Format(Resources.TextMessages.ThePropertyCantBeEmpty, "Display name of the External URL")
                          );
                }

                if (string.IsNullOrEmpty(item.Url))
                {
                    throw new InconsistencyException
                          (
                              string.Format(Resources.TextMessages.ThePropertyCantBeEmpty, "URL of the External URL")
                          );
                }
            }

            foreach (var item in project.GalleryImages ?? new List <GalleryImage>())
            {
                if (string.IsNullOrEmpty(item.ImageUrl))
                {
                    throw new InconsistencyException
                          (
                              string.Format(Resources.TextMessages.ThePropertyCantBeEmpty, "Image of the Gallery Image")
                          );
                }
            }
        }