Loading...
IvaYorgova avatar IvaYorgova 17 Точки

Exam - 25 October 2020 - GIT

Здравейте колеги,

може ли някой да помогне с решението на този изпит:

25 October 2020 - GIT.

Благодаря ви!

Ива

P.S. Каква може да е причината User-а винаги да е logged-out?

 

 

Тагове:
0
C# Web Development Basics
plambet0 avatar plambet0 5 Точки

Някой може ли да качи функционалността за CommitsControllera и съответно сървисите и вютата към него? Благодаря!

0
IvaYorgova avatar IvaYorgova 17 Точки

С голямо закъснение, но чак сега успях да го довърша:

---Commits Controller------------------------------

using Git.Data;
using Git.Data.Models;
using Git.Services;
using Git.ViewModels;
using Git.ViewModels.Commits;
using Git.ViewModels.Users;
using SUS.HTTP;
using SUS.MvcFramework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Git.Controllers
{
    public class CommitsController : Controller
    {
        private readonly ApplicationDbContext data;
        private readonly IUsersService service;

        public CommitsController(ApplicationDbContext data, IUsersService service)
        {
            this.data = data;
            this.service = service;
        }

        public HttpResponse All()
        {
            if (this.IsUserSignedIn())
            {
                var commits = this.data.Commits
                .Where(c => c.CreatorId == this.GetUserId())
                .Select(c => new CommitListingModel
                {
                    Id = c.Id,
                    Repository = c.Repository.Name,
                    Description = c.Description,
                    CreatedOn = c.CreatedOn.ToString(),

                })
                .ToList();

                return this.View(commits);
            }

            return Error("You must sign in first.");
        }

        public HttpResponse Create(string id)
        {
            if (this.IsUserSignedIn())
            {
                var repo = this.data.Repositories
                .Where(r => r.Id == id)
                .Select(r => new CommitToRepoModel
                {
                    Id = r.Id,
                    Name = r.Name
                })
                .FirstOrDefault();

                if (repo == null)
                {
                    return Error("Repository does not exist.");
                }

                return this.View(repo);
            }
            else
            {
                return Error("You must sign in first!");
            }
            
        }

        [HttpPost]
        public HttpResponse Create(CreateCommitsModel model)
        {
            if (!this.data.Repositories.Any(r => r.Id == model.Id))
            {
                return Error("Repository not found.");
            }

            if (model.Description.Length < 5)
            {
                return Error("Commit description have be at least 5 characters.");
            }

            var commit = new Commit
            {
                Description = model.Description,
                CreatedOn = DateTime.UtcNow,
                CreatorId = this.GetUserId(),
                RepositoryId = model.Id
            };

            this.data.Commits.Add(commit);
            this.data.SaveChanges();

            return Redirect("/Repositories/All");
        }

        public HttpResponse Delete(string id)
        {
            var commit = this.data.Commits.Find(id);

            if (commit == null || commit.CreatorId != this.GetUserId())
            {
                return Error("Commit not found.");
            }

            this.data.Commits.Remove(commit);
            this.data.SaveChanges();

            return Redirect("/Commits/All");
        }
    }
}

 

---Commits Views------------------------------

using System;
using System.Collections.Generic;
using System.Text;

namespace Git.ViewModels.Commits
{
    public class CommitListingModel
    {
        public string Id { get; set; }

        public string Repository { get; set; }

        public string Description { get; set; }

        public string CreatedOn { get; set; }
    }
}


---------

using System;
using System.Collections.Generic;
using System.Text;

namespace Git.ViewModels.Commits
{
    public class CommitToRepoModel
    {
        public string  Id { get; set; }

        public string Name { get; set; }
    }
}


-------

using System;
using System.Collections.Generic;
using System.Text;

namespace Git.ViewModels.Commits
{
    public class CreateCommitsModel
    {
        public string Id { get; set; }

        public string Description { get; set; }
    }
}

 

 

 

1
23/06/2021 10:44:26
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.